我们的Teamcity代理现在在32位操作系统上运行,直到现在这还不是问题(我们现在有一个x64应用程序可以在那里构建)。
我听说可以在32位操作系统上编译x64应用程序,但我从来没有这样做过。让Teamcity在x64中构建特定项目所需的步骤 - 理想情况下使用MSBuild?
当我将项目的MSBuild属性“Run Platform”设置为x64时,我的代理会给我以下警告:“未满足的要求:DotNetFramework4.0_x64存在”
作为旁注:我们最终会将代理移动到64位操作系统,但我想要一个短期解决方案。
答案 0 :(得分:15)
我认为TeamCity中MSBuild的Run Platform
是针对哪个版本的MSBuild使用的,当你使用的是32位版本时,它正在C:\Windows\Microsoft.NET\Framework64\v4.0.30319
文件夹中查找MSBuild.exe Windows,并没有安装该框架。但是,32位版本的MSBuild可以调用仍然可以生成x64程序集的C#编译器,即使在32位计算机上也是如此。
您要做的是为x86执行Run Platform
,但将/property:Platform=x64
作为您的命令之一传递。如果您没有x64配置,则可以考虑尝试传递它/property:Platform="Any CPU"
。但是,只有在项目中引用的所有程序集都设置为任何CPU时,才能保证任何CPU都能正常工作。或者,您可以创建一个自定义配置,其中所有程序集都指定为x64,并通过命令行将其传递给MSBuild。
请记住,如果您的任何项目都是C ++,则需要确保安装了x64编译器,因为我认为它们默认不会安装。