2012-08-16 20 views
8

错误MSB4018:在 “VCMessage” 任务意外失败。 System.FormatException:索引(基于零)必须大于或等于零并小于参数列表的大小。 at System.Text.StringBuilder.AppendFormat(IFormatProvider provider,String format,Object [] args) at System.String.Format(IFormatProvider provider,String format,Object [] args) at Microsoft.Build.Shared.ResourceUtilities。 FormatString(String unformatted,Object [] args) at Microsoft.Build.Utilities.TaskLoggingHelper.FormatString(String unformatted,Object [] args) at Microsoft.Build.Utilities.TaskLoggingHelper.FormatResourceString(String resourceName,Object [] args) 在Microsoft.Build.Utilities.TaskLoggingHelper.LogWarningWithCodeFromResources在Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost(字符串messageResourceName,对象[] messageArgs) 在Microsoft.Build.CPPTasks.VCMessage.Execute() .EX ecute() 在Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost,TaskLoggingContext taskLoggingContext,TaskHost taskHost,ItemBucket桶,TaskExecutionMode howToExecuteTask,布尔& taskResult)C:\ Program Files文件(x86)的\的MSBuild \ Microsoft.Cpp \ V4 .0 \ Microsoft.CppBuild.targets 990 6 vtk_minimal如何修复Visual Studio 2010中的错误MSB4018?

+0

究竟你在编译什么?这是否只发生在你添加/编辑了一些东西之后呢? – TheGeekZn 2012-08-16 10:20:28

+0

一个C++代码。其实我安装了视觉工作室。然后在其上构建vtk库。现在我试图用我在互联网上找到的示例代码来测试它。这是行不通的。在此之前,我试图处理LNK2019,LNK1120。我认为链接器存在问题。 – TahaYusuf 2012-08-16 10:49:54

+0

你可能一次尝试太多。该代码可能是旧的或错误的。它由写它来帮助/更新的人决定。 – TheGeekZn 2012-08-16 11:03:37

回答

12

我有同样的问题。我有一个旧的Visual Studio 2005 C++项目,我用Visual Studio 2010 C++重新打开了这个项目。对我而言,Microsoft Connect提出的第一个建议工作如下:

该问题源于Link-> OutputFile下的属性页中的意外$(TargetDir)。在构建过程中,我们试图将OutputFile扩展为完整路径,但只得到一个空值。因此,它导致索引超出限制的例外。

这是不可能的,我们将能够VS2010发布之前解决这些。解决方法是纠正OutputPath或从父项继承。

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

希望能为您解决它。

+1

非常好,我更改了输出文件路径并将其改回原样,并开始适用于所有解决方案。 – 2014-09-17 19:39:11

0

我无法弄清楚什么是错的。唯一解决这个错误的方法是删除配置并创建一个新的配置。 因此,在配置管理器中,我删除了不会构建的那个,并且我使用类似的方法重新创建了它。

相关问题