我在我的解決方案中有多個項目 - 具有x86和x64平臺的C++以及具有任何CPU(第三方dll),x86和x64平臺的C#。這個項目相互依賴。 我有兩種解決方案配置 - x86和x64。當我在VS中選擇x86時,所有C++項目都構建爲x86,所有第三方C#項目都構建爲Any CPU,而我的C#項目構建爲x86。 x64爲我的項目生成x64,爲第三方C#項目生成任何CPU。 這適用於Visual Studio。 然而,當我試圖通過的MSBuild(AppVeyor CI)來構建這個我得到這個錯誤:MSBuild。使用x86,x64和任何CPU平臺構建解決方案
C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets (723,5): error : The OutputPath property is not set for project 'Atf.Core.vs201 0.csproj'. Please check to make sure that you have specified a valid combinati on of Configuration and Platform for this project. Configuration='Debug' Plat form='x86'. You may be seeing this message because you are trying to build a p roject without a solution file, and have specified a non-default Configuration or Platform that doesn't exist for this project. [D:\Engine\Code\Dependenc ies\ATF\Framework\Atf.Core\Atf.Core.vs2010.csproj]
它看起來像的MSBuild不考慮解決方案的平臺。它試圖在指定的平臺上構建解決方案中的每個項目。 我試圖解決,添加/ p:OutputPath = bin \ Debug到MSBuild腳本,而x86編譯成功,x64給了我很多新的錯誤:(
所以我的問題。 MSBuild從解決方案映射獲取平臺,而不是試圖按照項目原樣使用它們?
PS我使用Premake生成我的項目,因此向解決方案添加一些屬性可能會非常棘手。以避免「修復」第三方項目
您是否嘗試過指定平臺和配置MSBuild SolutionName.sln/property:Configuration = Release/property:Platform = x64'? –
是的,這就是我嘗試在本地構建項目的方式。它給了我第一篇文章中提到的錯誤 – StiX