У меня есть решение, которое содержит два C ++ и два C # проекта. Для решения у меня есть конфигурация Win32, которая имеет два файла C ++ как Win32
и два файла C # как AnyCPU
, Решение x64 имеет C ++ как x64
и C # как AnyCPU
,
Для решения Win32 файлы C ++ встраиваются в /x86/Release/
папку, и я установил файлы C # для вывода в ту же папку. Тем не менее, потому что он установлен в AnyCPU
решение x64 также имеет вывод C # в /x84/Release/
папка.
Я надеялся, что в VS2012 будет какой-то макрос, который позволит мне выбрать конфигурацию решения, чтобы я мог установить вывод в $(SolnConfig)/Release
, но, похоже, ничего подобного нет.
Есть ли способ, которым я мог бы (относительно) непосредственно установить выход для AnyCPU
в каталоги x86 и x64 для соответствующих решений?
Вы можете создать пользовательскую конфигурацию и определить отдельные выходные каталоги для проекта в соответствии с этой конфигурацией.
Посмотри Вот для деталей о том, как настроить это.
Затем вы можете создать пакетный файл, который будет размещать корзины в соответствии с некоторой пользовательской логикой, например:
set msBuildExe=%WINDIR%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
set configName=%1
set pluginReportsDir=..\..\..\..\Wcf\Plugins\PluginReports
echo ---
echo Backup common PluginReports reports
rem Since this is a post build event, the Common PluginReports is already built
echo ---------------------------
robocopy %pluginReportsDir%\bin\%configName%\ %pluginReportsDir%\bin\ PluginReports.dll PluginReports.pdb
echo ---
echo PluginReports for Site 3
echo ---------------------------
call %msBuildExe% %pluginReportsDir%\PluginReports.csproj /p:Configuration=%configName%Plugins_Site3 /t:Rebuild /noconsolelogger
move /y %pluginReportsDir%\bin\%configName%\PluginReports.dll %pluginReportsDir%\bin\PluginReports_Site3.dll
move /y %pluginReportsDir%\bin\%configName%\PluginReports.pdb %pluginReportsDir%\bin\PluginReports_Site3.pdb
Укажите пакетный файл как событие после сборки, и он скопирует файлы. Он также может выполнять избыточные сборки, если это необходимо.
Похоже, есть три настройки платформы: платформа решений, платформа проекта и цель платформы. Я пытался установить AnyCPU с уровня Project Platform, что привело к путанице из-за наличия одного и того же выходного каталога для Win32 и x64 на уровне Solution Platform.
Ответ: установите платформу решения на Win32 и платформу проекта на x86 из диспетчера конфигурации, а в свойствах проекта установите для параметра Platform Target для файлов C # значение AnyCPU. Повторите для x64.