Как нацелить обе платформы Win32 и x64 ТОЛЬКО на один набор файлов решений / проектов? - PullRequest
5 голосов
/ 17 октября 2011

Я пытаюсь перенести несколько проектов из VC ++ 2005 в VC ++ 2010, и мне также нужно перенести это приложение с Win32 на платформу x64.

Я знаю, что файл проекта может содержать настройки для обеих платформ, но он требует, чтобы мне пришлось вручную менять настройку platfrom для каждого проекта, например, если я хочу собрать для x64.

То, что я хочу сделать, - это иметь ТОЛЬКО один набор файлов решений / проектов, которые могут быть нацелены на обе эти платформы, и с помощью какого-то простого переключателя я могу выбирать, какую платформу я собираю сейчас. Есть ли такой способ? Или мне нужно поддерживать два набора файлов решений / проектов, по одному для каждой платформы, чтобы, если я хочу собрать для x64, я могу открыть только файл решения для x64, и если я хочу собрать для Win32, у меня есть открыть файл решения для Win32?

Ответы [ 2 ]

5 голосов
/ 17 октября 2011

Вы можете использовать «Диспетчер конфигурации» в Visual Studio 2010, чтобы создать несколько конфигураций для вашего решения и файлов проекта.

В строке меню VS 2010 перейдите в «Build» -> «Configuration Manager ...»

4 голосов
/ 18 октября 2011

Допустим, у вас есть свойство платформы, которое дублируется в каждом файле проекта:

<Platform>x86</Platform>

Вы можете извлечь это свойство из ВСЕГО файла проекта в одном файле CommonProperties.properties:

<?xml version="1.0" encoding="utf-8" ?>
<Project 
    ToolsVersion="4.0" 
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003" 
    DefaultTargets="Default">

    <PropertyGroup>
         <Platform>x86</Platform>
    </PropertyGroup>
</Project>

А затем просто импортируйте его во ВСЕ файлы проекта:

<Import Project="CommonProperties.properties" />

РЕДАКТИРОВАТЬ: Поддержка нескольких платформ

<Platform Condition="'$(Platform)' == 'Win32'">x86</Platform>
<Platform Condition="'$(Platform)' == 'x64'">x64</Platform> 

Полезные ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...