2014-01-31 4 views
0

두 개의 C++ 프로젝트와 두 개의 C# 프로젝트가 포함 된 솔루션이 있습니다. 솔루션을 위해 나는 Win32과 두 개의 C# 파일 인 두 개의 C++ 파일을 가진 Win32 설정을 가지고있다. AnyCPU. x64 솔루션의 C++은 x64이고 C#은 AnyCPU입니다.VS2012 C#의 AnyCPU 구성에 대한 출력 디렉터리를 각 솔루션 구성에 대한 x86 및 x64 폴더로 설정하는 방법?

Win32 솔루션의 경우 C++ 파일은 /x86/Release/ 폴더에 생성되며 동일한 폴더로 출력하도록 C# 파일을 설정했습니다. 그러나 AnyCPU으로 설정 되었기 때문에 x64 솔루션에는 /x84/Release/ 폴더에 대한 C# 출력도 있습니다.

VS2012에 어떤 종류의 매크로가 있으면 솔루션의 구성을 선택하여 출력을 $(SolnConfig)/Release으로 설정할 수 있기를 바래지만 그 종류의 것으로 보이지 않습니다.

각각의 솔루션에 대해 AnyCPU의 x86 및 x64 디렉토리에 대한 출력을 (상대적으로) 직접 설정할 수있는 방법이 있습니까?

답변

0

사용자 지정 구성을 만들고 해당 구성에서 프로젝트마다 개별 출력 디렉터리를 정의 할 수 있습니다. 설정 방법에 대한 자세한 내용은 here을 참조하십시오.

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 

게시물 빌드 이벤트로 배치 파일을 지정하고이 파일을 통해 복사합니다 :

당신은 다음과 같이 몇 가지 사용자 지정 논리에 따라 쓰레기통을 배치하는 배치 파일을 만들 수 있습니다. 필요에 따라 오버 빌드를 수행 할 수도 있습니다.

0

솔루션 플랫폼, 프로젝트 플랫폼 및 플랫폼 대상의 세 가지 플랫폼 설정이있는 것처럼 보입니다. AnyCPU를 Project Platform 수준에서 설정하려고했는데, 이는 솔루션 플랫폼 수준에서 Win32 및 x64에 대해 동일한 출력 디렉터리를 가지고 있기 때문에 혼란을 야기했습니다.

답변 : 솔루션 관리자 플랫폼을 Win32로 설정하고 프로젝트 플랫폼을 구성 관리자에서 x86으로 설정하고 프로젝트 속성에서 C# 파일의 플랫폼 대상을 AnyCPU로 설정하십시오. x64에서도 반복하십시오.