在构建服务器上为两个平台 (x86+x64) 构建 C++ dll
Build C++ dll to both platforms (x86+x64) on build server
有没有办法在构建服务器 (TeamCity) 上构建 (msbuild) 32 位和 64 位的 C++ 库?
我的解决方案由一些 C# 项目(所有 AnyCPU)和一个 C++ 组成:
- Win32 -> 构建到 x86
- x64 -> 构建为 x64
在 msbuild 脚本中尝试使用此目标:
<Target Name="AfterBuild">
<MSBuild Condition=" '$(Platform)' == 'Win32' " Projects="$(MSBuildProjectFile)"
Properties="Platform=x64;PlatFormTarget=x64" RunEachTargetSeparately="true" />
</Target>
但没有成功! (将使用配置中选择的平台window)
我通过在 VisualStudio 中添加一个新配置来仅构建本机来解决它
32 位的 C++ 库。
- 创建新配置,例如
NativeLibs_x86
- 选中仅为 C++ 库和平台构建复选框
Win32
- 添加新目标以构建
NativeLibs_x86
到您的 msbuild 脚本
<Target Name="BuildNativeLibs">
<MSBuild Projects="$(SolutionFile)"
Targets="Rebuild"
Properties="Configuration=NativeLibs_x86;
Platform=AnyCPU;
DeployOnBuild=false"
BuildInParallel="false"/>
</Target>
- 考虑目标
BuildNativeLibs
例如BuildRelease
目标
有没有办法在构建服务器 (TeamCity) 上构建 (msbuild) 32 位和 64 位的 C++ 库?
我的解决方案由一些 C# 项目(所有 AnyCPU)和一个 C++ 组成:
- Win32 -> 构建到 x86
- x64 -> 构建为 x64
在 msbuild 脚本中尝试使用此目标:
<Target Name="AfterBuild">
<MSBuild Condition=" '$(Platform)' == 'Win32' " Projects="$(MSBuildProjectFile)"
Properties="Platform=x64;PlatFormTarget=x64" RunEachTargetSeparately="true" />
</Target>
但没有成功! (将使用配置中选择的平台window)
我通过在 VisualStudio 中添加一个新配置来仅构建本机来解决它 32 位的 C++ 库。
- 创建新配置,例如
NativeLibs_x86
- 选中仅为 C++ 库和平台构建复选框
Win32
- 添加新目标以构建
NativeLibs_x86
到您的 msbuild 脚本
<Target Name="BuildNativeLibs"> <MSBuild Projects="$(SolutionFile)" Targets="Rebuild" Properties="Configuration=NativeLibs_x86; Platform=AnyCPU; DeployOnBuild=false" BuildInParallel="false"/>
</Target>
- 考虑目标
BuildNativeLibs
例如BuildRelease
目标