【发布时间】:2014-02-25 09:12:08
【问题描述】:
我目前遇到了一个奇怪的问题。我有一个构建服务器编译版本的解决方案,一个特定的解决方案在构建服务器上编译为 32 位,它不应该编译,而所有其他的都构建为 Any Cpu(以 64 位运行)。 从 VS 命令提示符使用 msbuild 时,构建服务器上的构建仍然是 32 位,但在我的机器上它是 64 位。这是通过使用 corflags(64 位编译版本)来检查的:
Version : v4.0.30319
CLR Header: 2.5
PE : PE32
CorFlags : 1
ILONLY : 1
32BIT : 0
Signed : 0
32bit 在哪里有在构建服务器上设置的 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
【问题讨论】:
-
我认为您正在为所有这些项目构建解决方案?您是否在解决方案的配置管理器属性中检查了构建平台?
-
使用哪个版本的 MSBuild(32 位或 64 位)在您的构建定义的 MSBuild 平台属性中设置
-
是的,这是一个正在构建的解决方案......我会看看属性
-
在哪里可以找到构建定义的 MSBuild 平台属性?
-
这是 VS2010 的灾难。您可以通过将大锤带到 Build + Configuration Manager 对话框并删除所有这些无意义的平台名称来修复它。只有 AnyCPU 对托管项目有意义。现在您可以正确更改真正重要的设置:项目+属性、构建选项卡、平台目标。对于 Debug 和 Release 配置,将其设置为 AnyCPU。强烈建议更新您的 VS 版本,这个愚蠢的 VS2010 错误已修复。
标签: c# visual-studio-2010 msbuild