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

xqk2d5yq  于 2023-10-23  发布在  其他
关注(0)|答案(3)|浏览(258)

错误MSB4018:"VCMessage"任务意外失败。System.FormatException:索引(从零开始)必须大于或等于零且小于参数列表的大小。在系统。发短信StringBuilder。System上的ObjectFormat(IstridProvider provider,String format,Object [] args)。绳子Microsoft中的格式(IXPProvider提供程序、字符串格式、Object [] args)。建造。共享。资源实用程序。Microsoft中的String(String unformatted,Object [] args)。建造。公用事业。TaskLoggingHelper。Microsoft中的String(String unformatted,Object [] args)。建造。公用事业。TaskLoggingHelper。在Microsoft中创建ResourceString(String resourceName,Object [] args)。建造。公用事业。TaskLoggingHelper。Microsoft的LogWarningWithCodeFromResources(String messageResourceName,Object [] messageArgs)。建造。CPPT要求。VC消息。在Microsoft中执行()。建造。后端。TaskExecutionHost。微软。建造。后端。ITaskExecutionHost.在Microsoft中执行()。建造。后端。任务生成器。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

oxosxuxt

oxosxuxt1#

我也有同样的问题。我有一个旧的Visual Studio 2005 C项目,我用Visual Studio 2010 C重新打开了它。对我来说,在Microsoft Connect上提出的第一个建议起作用了:
这个问题源于在Link->OutputFile下的属性页中发现的意外$(TargetDir)。在构建过程中,我们试图将OutputFile扩展为全路径,但只得到一个空值。因此,它导致了索引越界异常。
我们不太可能在VS2010发布之前修复这些问题。解决方法是更正OutputPath或从父级继承。
右键单击项目,然后转到Properties > Linker > General。然后将“输出文件”设置为““
希望这也能为你解决问题。

cuxqih21

cuxqih212#

我不知道出了什么问题。对我来说,解决这个错误的唯一方法是删除配置并创建一个新的配置。所以在配置管理器中,我删除了一个不会构建的,我从一个类似的重新创建了它。

huus2vyu

huus2vyu3#

这是一个老问题,但问题仍然存在(至少在VS 2019中)。在我的例子中,它只发生在使用cmd脚本的命令行编译期间。
该错误是由脚本导致的,该脚本将TargetPath设置并使用为没有尾随斜杠的有效路径。显然,这在一些MSVC工具中引起了混乱,即使项目(.vcxproj)不包括任何TargetPath引用或使用。
在我的脚本中将TargetPath重命名为TargetPathBase解决了这个问题。

相关问题