2012-08-16 38 views
8

error MSB4018: La tarea "VCMessage" falló inesperadamente. System.FormatException: Index (zero based) debe ser mayor o igual que cero y menor que el tamaño de la lista de argumentos. en System.Text.StringBuilder.AppendFormat (proveedor de IFormatProvider, formato de cadena, Object [] args) en System.String.Format (proveedor de IFormatProvider, formato de cadena, Object [] args) en Microsoft.Build.Shared.ResourceUtilities. FormatString (String no formateado, Object [] args) en Microsoft.Build.Utilities.TaskLoggingHelper.FormatString (String no formateado, Object [] args) en Microsoft.Build.Utilities.TaskLoggingHelper.FormatResourceString (String resourceName, Object [] args) en Microsoft.Build.Utilities.TaskLoggingHelper.LogWarningWithCodeFromResources (String messageResourceName, objeto messageArgs []) en Microsoft.Build.CPPTasks.VCMessage.Execute() en Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost .Ex ecute() en Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask (ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket cubo, TaskExecutionMode howToExecuteTask, Boolean & TaskResult) C: \ Archivos de programa (x86) \ MSBuild \ Microsoft.Cpp \ v4 .0 \ Microsoft.CppBuild.targets 990 6 vtk_minimal¿Cómo soluciono el error MSB4018 en Visual Studio 2010?

+0

¿Qué estaba compilando exactamente? ¿Y eso solo sucedió después de agregar/editar algo? – TheGeekZn

+0

un código de C++. de hecho, instalé Visual Studio. luego compila la biblioteca vtk en él. ahora intento probarlo con un código de ejemplo que encontré en internet. No funciona. antes de esto, estaba tratando de manejar LNK2019, LNK1120. Pensé que había un problema con el enlazador. – TahaYusuf

+0

Es posible que esté intentando demasiado a la vez. Ese código puede ser viejo o incorrecto. Depende de la persona que lo escribió para ayudar/actualizar. – TheGeekZn

Respuesta

12

Tuve el mismo problema. Tenía un antiguo proyecto Visual Studio 2005 C++, que volví a abrir con Visual Studio 2010 C++. Para mí, la primera sugerencia propuesta en Microsoft Connect trabajó:

El problema se deriva de la inesperada $ (TargetDir) que se encuentra en la página de propiedades bajo Link-> OutputFile. Durante el proceso de compilación, intentamos expandir OutputFile a una ruta completa pero solo obtuvimos un valor vacío. Por lo tanto, condujo a la excepción índice fuera de límite.

Es poco probable que podamos solucionar esto antes de la versión VS2010. La solución alternativa es corregir OutputPath o heredar de parent.

Haga clic derecho en el proyecto y vaya a Propiedades> Enlazador> General. A continuación, establezca "Archivo de salida" en "< Heredar de los valores predeterminados del padre o proyecto >"

Espero que lo solucione para usted también.

+1

Excelente, cambié la ruta del archivo de salida y la cambié como estaba, y comenzó a funcionar para todas las soluciones. –

0

No pude entender lo que estaba mal. Lo único que me solucionó este error fue eliminar la configuración y crear una nueva. Así que en Configuration Manager eliminé el que no se compilaría, y lo recreé de uno similar.

Cuestiones relacionadas