2010-06-03 40 views
4

我已經制作了一個MSBuild項目,它只是以我們的解決方案文件作爲參數執行msbuild任務。我已經定義了一個BeforeBuild目標,我設置了一些屬性以及一個執行msbuild任務的Build目標。只有在調用CCNET中的MSBuild時纔會出現「輸出路徑屬性未設置」錯誤

我已確認在命令行控制檯中構建msbuild腳本時沒有發生錯誤。然而,當我在CCNET項目中使用它的MSBuild任務,我不斷收到以下錯誤:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets (483,9): error: The OutputPath property is not set for project 'MyProject.msbuild'. Please check to make sure that you have specified a valid combination of Configuration and Platform for this project. Configuration='Debug' Platform='AnyCPU'. You may be seeing this message because you are trying to build a project without a solution file, and have specified a non-default Configuration or Platform that doesn't exist for this project.

我檢查了構建日誌,似乎_CheckForInvalidConfigurationAndPlatform過程中發生的錯誤。它甚至無法繼續執行我的構建任務!由於腳本只建意在調試/發佈和AnyCPU爲平臺的解決方案,我想下面的行添加到我的MSBuild項目:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    <OutputPath>.\bin\Debug\</OutputPath> 
</PropertyGroup> 
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    <OutputPath>.\bin\Release\</OutputPath> 
</PropertyGroup> 

我仍然可以生成項目沒有錯誤的命令行,但CCNET正在返回上述相同的錯誤。

我不明白爲什麼CCNET不斷收到錯誤,我不知道還有什麼可以嘗試的。

請幫忙。

+1

這是否對您有幫助? http://blogs.msdn.com/b/brandonwerner/archive/2010/03/14/the-nasty-visual-studio-platform-mcd-error-in-visual-studio-2010-rc.aspx – 2010-11-08 18:39:40

+0

你能發佈在CC.NET中使用的msbuild任務? – alexandrul 2010-12-15 10:27:16

回答

10

我發現我有類似的情況(但使用TeamCity作爲我的CI環境)。在我的特殊情況下,該項目是一個命令行應用程序。要解決它,我必須手動編輯我的項目文件。

查找這些行:

<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
<Platform Condition=" '$(Platform)' == '' ">x86</Platform> 

更改第二行:

<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 

的發現在項目文件中的其他特定於平臺的線條和改變他們。例如:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> 

變爲:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 

我懷疑是我們構建服務器是64位,並在Studio的控制檯應用程序項目類型不會讓你做這個項目適合的AnyCPU平臺..

這些更改之後,TeamCity對我的構建腳本沒有任何問題。

+1

這正是我所需要的。沒有這個答案,我非常懷疑我能否追查到這一點。 – 2012-05-23 19:28:04

+0

如果有其他人遇到這個問題,首行屬於最初的Property Group,在我的情況下,平臺行完全缺失。添加它解決了與TeamCity – yieldvs 2014-10-07 00:20:14

3

大衛的答案幫助了我。但後來我發現了我的電腦問題的實際來源。環境變量被添加到HP機器上,並且確實會影響Visual Studio的許多不同場景。

進入環境變量 - >系統變量並從列表中刪除「PLATFORM」。

在此處查看更多詳細信息:http://blogs.msdn.com/b/jnak/archive/2010/03/24/outputpath-property-is-not-set-for-project-error-when-building-a-windows-azure-cloud-service-in-vs-2010.aspx

+0

的問題感謝您的額外信息。這一定是一個真正的解決問題的人! – 2011-09-13 21:24:52

+0

在我的情況下,這實際上只是把更多的財產組織與平臺,有時人們定製它(另一個名字像'MyAcceptance'),然後巡航控制引發這個錯誤。所以你必須把這個名字也添加到csproj的源代碼中 – 2012-05-14 17:32:54

相關問題