2014-02-25 110 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。

相关问题