2014-02-25 114 views
0

我目前有一個奇怪的問題。我有一個構建服務器編譯解決方案的版本,一個特定的解決方案編譯爲32位,它不應該在構建服務器上,而所有其他構建爲任何Cpu(運行64位)。 從VS命令提示符使用msbuild時,構建服務器上的構建仍爲32位,但在我的計算機上爲64位。這通過使用corflags(64位編譯版本)進行檢查:msbuild在一臺機器上編譯32位,在另一臺機器上編譯64位

Version : v4.0.30319 
CLR Header: 2.5 
PE  : PE32 
CorFlags : 1 
ILONLY : 1 
32BIT  : 0 
Signed : 0 

32位在buildserver上設置了32BIT標誌的位置?

我在兩臺機器上使用相同的msbuild命令:msbuild /p:Congiruation="Release|Mixed Platforms"

Buildserver運行的是Windows 2008 R2標準64位 我的機器是Windows 7的64位

我試圖通過構建日誌可以查看,但都沒有得到一個線索,以尋找什麼?

解決方案文件說,爲給定的項目如下:

{2BA1CBC7-6468-4F66-9EF6-F7EE71EC6091}.Release|Any CPU.ActiveCfg = Release|Any CPU 
{2BA1CBC7-6468-4F66-9EF6-F7EE71EC6091}.Release|Any CPU.Build.0 = Release|Any CPU 
{2BA1CBC7-6468-4F66-9EF6-F7EE71EC6091}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU 
{2BA1CBC7-6468-4F66-9EF6-F7EE71EC6091}.Release|Mixed Platforms.Build.0 = Release|Any CPU 
{2BA1CBC7-6468-4F66-9EF6-F7EE71EC6091}.Release|x86.ActiveCfg = Release|Any CPU 
{2BA1CBC7-6468-4F66-9EF6-F7EE71EC6091}.Release|x86.Build.0 = Release|Any CPU 
+0

我認爲你正在構建一個包含所有這些項目的解決方案?您是否在解決方案的配置管理器屬性中檢查了構建平臺? –

+0

要使用的MSBuild(32或64位)的版本是否在您的Build Definition的MSBuild Platform屬性中設置 –

+0

是的,這是一個構建的解決方案...我將查看屬性 –

回答

0

找到了解決辦法,確保該項目的文件是正確適用於所有平臺

{2BA1CBC7-6468-4F66-9EF6-F7EE71EC6091}.Release|Any CPU.ActiveCfg = Release|Any CPU 
{2BA1CBC7-6468-4F66-9EF6-F7EE71EC6091}.Release|Any CPU.Build.0 = Release|Any CPU 
{2BA1CBC7-6468-4F66-9EF6-F7EE71EC6091}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU 
{2BA1CBC7-6468-4F66-9EF6-F7EE71EC6091}.Release|Mixed Platforms.Build.0 = Release|Any CPU 
{2BA1CBC7-6468-4F66-9EF6-F7EE71EC6091}.Release|x86.ActiveCfg = Release|Any CPU 
{2BA1CBC7-6468-4F66-9EF6-F7EE71EC6091}.Release|x86.Build.0 = Release|Any CPU 

我開始的任何CPU後WIX項目中的outputpath未設置問題。使用corflags檢查TeamCity服務器上的構建exe文件現在顯示它已正確編譯。所以現在的問題是WIX項目。因此,一些額外的信息,爲了解決wix項目中的問題,我編輯了exe的proj文件,添加了一個x86版本的屬性組,但PlatformTarget設置爲AnyCPU。 這意味着請求的來自WIX的outputhpath存在(Release | x86),但正在編譯爲AnyCPU。

相關問題