Visual Studio — Как я могу заставить платформу C ++ в MSBuild?

У меня есть программа, которая должна быть 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 ++)

0

Решение

Наконец-то понял это. 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>
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]