2012-10-31 167 views
0

我們有一種解決方案構建於我們在x64機器上構建的AnyCPU中。它包含幾個引用Silverlight SDK(僅針對x86)的項目。當我們在Visual Studio 2010中構建解決方案時,一切都很好。使用MSBuild構建具有多種環境的解決方案

我們試圖自動化構建,當我們在該解決方案文件上啓動msbuild時,依賴於Silverlight SDK的兩個項目都無法構建,而另外50個構建得很好。如果我打電話給devenv.exe來構建soltuion,它會生成整個解決方案(正如我所期望的那樣)。

我想我可以創建某種構建文件來解決這個問題,但我寧願不必另外維護另一個構建文件,而不是我們現有的解決方案文件。有什麼辦法可以告訴msbuild爲每個項目構建「正確」的環境,而不需要單獨的構建文件?

如果沒有,那麼我收集msbuild構建文件基本上只是.proj文件。如何配置比MSBuild reference更好的參考,還是真的是最難以啓動的地方?

回答

4

沒有關於您正在看到的確切錯誤的更多細節我猜你正遇到此問題,因爲64位版本的msbuild正在構建服務器上運行。由於Visual Studio 2010是32位的,因此您不會在此處看到此問題。

要讓團隊構建使用32位msbuild,請將MSBuild平臺設置設置爲生成配置中高級下的進程選項卡上的X86。

你的其他項目仍然可以定位AnyCPU,甚至是目標x64,但除非你知道你需要,否則不建議這樣做,並且編譯好。

有用的圖片here

更多信息可在這裏找到接近底部的this post

希望這會有所幫助。

+0

現貨;我們沒有使用團隊構建 - 我在命令行中調用了msbuild exe,並指定32位msbuild.exe使解決方案針對target =「Any CPU」構建得很好。我必須研究是否有其他我們不想要的副作用,但爲了我的直接目的,這是有效的! – cori

相關問題