我有一個項目文件,應該建立另一個解決方案。我嘗試使用MSBuild任務對於這一點,就像這樣:MSBuild任務不生成解決方案文件
<MSBuild Projects="MySolution.sln" Properties="Configuration=$(Configuration)"/>
我嘗試了很多變種,比如提供硬編碼的配置,目標重建等。當我傳遞錯誤的解決方案名稱,不存在的配置或目標等時,構建報告錯誤,因此它肯定會加載解決方案和項目文件。它雖然退出相對較快,但沒有產出。根據文檔和示例,這應該工作。我也嘗試爲項目傳遞一個ItemGroup,包括示例或MSBuild - How to build a .NET solution file (in an XML task script) from pre-written command line commands建議的項目特定屬性,但這也不起作用。它運行沒有錯誤,但沒有輸出。
當傳遞項目文件列表(或單個項目文件)時,它會正確構建,但問題在於項目之間的依賴關係未正確解析。最後,我必須提供解決方案中的所有項目文件,並將它們添加到列表中,這是我想要避免的。
那麼,爲什麼解決方案建設不起作用,即使它應該?這裏有什麼問題?
好的,那是問題所在。通過「任何CPU」將正常工作。然而,傳遞$(平臺)不起作用,即使我處於任何CPU構建中。傳遞的值是「AnyCPU」(沒有空格)。任何想法,爲什麼呢? – OregonGhost
這是一個bug http://stackoverflow.com/a/4209924/568475 –
是的,我發現了另一個錯誤:由於某種原因,當像這樣構建時,MSBuild不維護項目依賴關係。一個官方聲明是,當解決方案中沒有找到配置或平臺時,它會這樣做,但在這種情況下,兩者都是。如果指定了「錯誤」的平臺,它不會構建任何東西。我試圖用Exec代替MSBuild,但是這會導致下一個問題(找到msbuild.exe)... – OregonGhost