繁体   English   中英

msbuild在一台计算机上编译为32位,在另一台计算机上编译为64位

[英]msbuild compiles 32bit on one machine and 64bit on another

我目前遇到一个奇怪的问题。 我有一个用于版本的构建服务器编译解决方案,一个特定的解决方案在构建服务器上被编译为32bit,而不应该编译为32bit,而其他所有解决方案都被编译为Any Cpu(以64bit运行)。 从VS命令提示符使用msbuild时,在构建服务器上,构建仍为32位,但在我的计算机上为64位。 这可以通过使用corflags(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

在确保项目文件正确无误后,找到了解决方案

{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

我开始在WIX项目上遇到outputpath未设置的问题。 现在,使用corflags检查Teamcity服务器上的生成exe文件,表明该文件已正确编译。 所以现在的问题是WIX项目。 因此,为了解决wix项目中的问题,提供了一些额外的信息,我为exe编辑了proj文件,添加了Release x86属性组,但将PlatformTarget设置为AnyCPU。 这意味着来自WIX的请求的outputhpath存在(Release | x86),但是正在被编译为AnyCPU。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM