2012-08-16 9 views
8

Errore MSB4018: l'attività "VCMessage" non è riuscita in modo imprevisto. System.FormatException: Index (a base zero) deve essere maggiore o uguale a zero e inferiore alla dimensione dell'elenco di argomenti. in System.Text.StringBuilder.AppendFormat (provider IFormatProvider, formato stringa, argomento Object [] args) in System.String.Format (provider IFormatProvider, formato stringa, oggetto Object [] args) in Microsoft.Build.Shared.ResourceUtilities. FormatString (String unformatted, Object [] args) in Microsoft.Build.Utilities.TaskLoggingHelper.FormatString (String unformatted, Object [] args) in Microsoft.Build.Utilities.TaskLoggingHelper.FormatResourceString (String resourceName, Object [] args) a Microsoft.Build.Utilities.TaskLoggingHelper.LogWarningWithCodeFromResources (String messageResourceName, oggetto [] messageArgs) a Microsoft.Build.CPPTasks.VCMessage.Execute() a Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost .Ex ecute() a Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask (ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket secchio, TaskExecutionMode howToExecuteTask, booleano & taskResult) C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4 .0 \ Microsoft.CppBuild.targets 990 6 vtk_minimalCome posso risolvere l'errore MSB4018 in Visual Studio 2010?

+0

cosa stavi compilando esattamente? E questo è successo solo dopo aver aggiunto/modificato qualcosa? – TheGeekZn

+0

un codice C++. in realtà ho installato lo studio visivo. quindi creare la libreria vtk su di esso. ora sto provando a testarlo con un codice di esempio che ho trovato su internet. non funziona. prima di questo, stavo cercando di gestire LNK2019, LNK1120. Ho pensato che ci fosse un problema con il linker. – TahaYusuf

+0

Si potrebbe provare troppo in una volta. Quel codice potrebbe essere vecchio o sbagliato. Sta a chi lo ha scritto per aiutare/aggiornare. – TheGeekZn

risposta

12

Ho avuto lo stesso problema. Ho avuto un vecchio progetto Visual Studio 2005 C++, che ho riaperto con Visual Studio 2010 C++. Per me, il primo suggerimento proposto a Microsoft Connect lavorato:

Il problema deriva dal $ inaspettato (TargetDir) si trova nella pagina delle proprietà in Link-> OutputFile. Durante il processo di compilazione, abbiamo provato ad espandere OutputFile in un percorso completo ma solo a un valore vuoto. Pertanto, ha portato all'eccezione out-of-bound dell'indice.

È improbabile che saremo in grado di risolvere questi prima della versione VS2010. La soluzione alternativa è correggere OutputPath o ereditare da padre.

Fare clic con il tasto destro del mouse sul progetto e selezionare Proprietà> Linker> Generale. Quindi imposta "File di output" su "< Eredita da padre o impostazioni predefinite del progetto >"

Spero che lo risolva anche per te.

+1

Eccellente, ho modificato il percorso del file di output e lo ho modificato come era e ha iniziato a funzionare per tutte le soluzioni. –

0

Non riuscivo a capire cosa c'era che non andava. L'unica cosa che ha risolto questo errore è stato rimuovere la configurazione e crearne una nuova. Così in Configuration Manager ho rimosso quello che non si sarebbe costruito, e l'ho ricreato da uno simile.