在32位版本的Windows上编译x64(Teamcity)

Ben*_*ttr 7 .net c# msbuild teamcity 64-bit

我们的Teamcity代理现在在32位操作系统上运行,直到现在这还不是问题(我们现在有一个x64应用程序可以在那里构建).

我听说可以在32位操作系统上编译x64应用程序,但我从来没有这样做过.Teamcity在x64中构建特定项目所需的步骤是什么 - 理想情况下使用MSBuild?

当我将项目的MSBuild属性"Run Platform"设置为x64时,我的代理给出了以下警告:"未满足的要求:DotNetFramework4.0_x64存在"

作为旁注:我们最终会将代理移动到64位操作系统,但我想要一个短期解决方案.

Chr*_*ens 15

我认为Run PlatformTeamCity中的MSBuild是针对什么版本的MSBuild使用的C:\Windows\Microsoft.NET\Framework64\v4.0.30319,当你在32位版本的Windows上时,它正在文件夹中查找MSBuild.exe ,并且没有安装该框架.但是,32位版本的MSBuild可以调用仍然可以生成x64程序集的C#编译器,即使在32位计算机上也是如此.

你想要做的是Run Platform为x86 做一个,但/property:Platform=x64作为你的一个命令传递.如果您没有x64配置,则可以考虑尝试通过它/property:Platform="Any CPU".但是,只有在项目中引用的所有程序集都设置为任何CPU时,才能保证任何CPU都能正常工作.或者,您可以创建一个自定义配置,其中所有程序集都指定为x64,并通过命令行将其传递给MSBuild.

请记住,如果您的任何项目是C++,您将需要确保安装了x64编译器,因为我认为它们默认情况下不会安装.