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

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

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

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


person cobe24    schedule 17.10.2011    source источник
comment
Используйте сборку + пакетную сборку.   -  person Hans Passant    schedule 17.10.2011


Ответы (2)


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

В строке меню VS 2010 перейдите в «Сборка» -> «Диспетчер конфигурации…».

person Michael Price    schedule 17.10.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" />

EDIT: поддержка нескольких платформ

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

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

person sll    schedule 17.10.2011
comment
Спасибо, слл. Я знаю, что файл листа свойств VC2010 (.props) может определять некоторые общие настройки проекта, такие как пользовательские переменные среды, тогда все проекты могут импортировать этот файл, чтобы использовать эти общие настройки. Но мне кажется, что файл таблицы свойств не поддерживает другую конфигурацию (отладка или выпуск) или разные платформы (Win32 или x64), потому что элементы управления пользовательского интерфейса для их настройки неактивны. Что я хочу сделать, так это определить разные настройки для разных конфигураций/платформ в одном файле и позволить всем проектам импортировать этот файл. - person cobe24; 18.10.2011