错误 MSB4018:“VCMessage”任务意外失败。System.FormatException:索引(从零开始)必须大于或等于零且小于参数列表的大小。在 System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args) 在 System.String.Format(IFormatProvider provider, String format, Object[] args) 在 Microsoft.Build.Shared.ResourceUtilities.FormatString(String Microsoft.Build.Utilities.TaskLoggingHelper.FormatResourceString(String resourceName, Object[] args) 在 Microsoft.Build. Microsoft.Build.CPPTasks 上的 Utilities.TaskLoggingHelper.LogWarningWithCodeFromResources(String messageResourceName, Object[] messageArgs)。
问问题
11296 次
2 回答
13
我有同样的问题。我有一个旧的 Visual Studio 2005 C++ 项目,我用 Visual Studio 2010 C++ 重新打开了它。对我来说, Microsoft Connect提出的第一个建议奏效了:
问题源于在 Link->OutputFile 下的属性页中发现意外的 $(TargetDir)。在构建过程中,我们尝试将 OutputFile 扩展为完整路径,但只得到一个空值。因此,它导致了索引越界异常。
我们不太可能在 VS2010 发布之前修复这些问题。解决方法是更正 OutputPath 或从父级继承。
右键单击项目并转到属性 > 链接器 > 常规。然后将“输出文件”设置为“<从父级或项目默认值继承>”
希望也能为您解决。
于 2013-07-21T10:00:55.983 回答
0
我不知道出了什么问题。为我解决此错误的唯一方法是删除配置并创建一个新配置。因此,在配置管理器中,我删除了不会构建的那个,然后我从一个类似的中重新创建了它。
于 2017-03-29T16:51:20.800 回答