如何在Visual Studio 2010中修复错误MSB4018?

时间:2012-08-16 10:17:31

标签: visual-studio

  

错误MSB4018:" VCMessage"任务意外失败。   System.FormatException:索引(从零开始)必须大于或等于零且小于参数列表的大小。      在System.Text.StringBuilder.AppendFormat(IFormatProvider提供程序,String格式,Object [] args)      在System.String.Format(IFormatProvider提供程序,String格式,Object [] args)      在Microsoft.Build.Shared.ResourceUtilities.FormatString(String unformatted,Object [] args)      在Microsoft.Build.Utilities.TaskLoggingHelper.FormatString(String unformatted,Object [] args)      在Microsoft.Build.Utilities.TaskLoggingHelper.FormatResourceString(String resourceName,Object [] args)      在Microsoft.Build.Utilities.TaskLoggingHelper.LogWarningWithCodeFromResources(String messageResourceName,Object [] messageArgs)      在Microsoft.Build.CPPTasks.VCMessage.Execute()      在Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()      在Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost,TaskLoggingContext taskLoggingContext,TaskHost taskHost,ItemBucket bucket,TaskExecutionMode howToExecuteTask,Boolean& taskResult)C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ Microsoft .CppBuild.targets 990 6 vtk_minimal

2 个答案:

答案 0 :(得分:12)

我遇到了同样的问题。我有一个旧的Visual Studio 2005 C ++项目,我用Visual Studio 2010 C ++重新打开了它。对我来说,Microsoft Connect提出的第一个建议是:

  

问题源于在Link-> OutputFile下的属性页中发现的意外$(TargetDir)。在构建过程中,我们尝试将OutputFile扩展为完整路径,但只获得一个空值。因此,它导致了索引越界异常。

     

我们不太可能在VS2010发布之前解决这些问题。解决方法是更正OutputPath或从父级继承。

右键单击该项目,然后转到属性>链接器>一般。然后将“输出文件”设置为“<继承自父项或项目默认值>”

希望能为你修复它。

答案 1 :(得分:0)

我无法弄清楚出了什么问题。为我修复此错误的唯一方法是删除配置并创建一个新配置。 因此,在Configuration Manager中,我删除了无法构建的那个,并且我从类似的那个中重新创建了它。

相关问题