2012-08-16 22 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

我無法弄清楚什麼是錯的。唯一解決這個錯誤的方法是刪除配置並創建一個新的配置。 因此,在配置管理器中,我刪除了不會構建的那個,並且我使用類似的方法重新創建了它。

相關問題