我有一个程序必须构建为 32 位。它随 x64 应用程序一起提供。结果,有一个安装程序得到了一个位数。
安装程序是用 wixproj
构建的,它必须用 /p:Platform=x64
构建——但是 vcxproj
需要构建作为 x86。
我尝试通过显式设置将 Platform
强制为 x86
或 Win32
:
<PropertyGroup>
<Platform>Win32</Platform>
</PropertyGroup>
但似乎传递给 wixproj
的命令行开关在构建时“获胜”。
有没有什么方法可以使项目文件强制 Platform
为 Win32
而不管在命令行上指定了什么?
(对于 csproj
我能够做到这一点:
<PropertyGroup>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
但这似乎对 C++ 没有任何影响)
最佳答案
终于明白了。 MSBuild 有一个设置 TreatAsLocalProperty
这允许项目文件覆盖任何变量,该变量进入文件开头的 Project
节点。
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build"
ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
TreatAsLocalProperty="Platform"> <!-- !!! -->
<PropertyGroup>
<Platform>Win32</Platform>
</PropertyGroup>
<!-- Now Platform is Win32 no matter what! -->
</Project>
关于c++ - 如何在 MSBuild 中强制使用 C++ 平台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21249108/