본문 바로가기

.Net/Visual Studio 2005

Visual Studio 2005 32bit, 64bit 겸용 빌드 후 이벤트

Visual Studio 2005
2007. 11. 2.
안혁
http://hyok.kr


요즘은 서버가 64비트가 많지요? 하지만 개발자 PC는 아직 32비트가 많습니다. 더군다나 노트북이라면 더욱 그렇지요. 개발자 PC(32bit)에 작업한 프로젝트를 서버에 올려놓은 후에 서버에서 컴파일 하게 되는 경우, 빌드 후 이벤트가 문제를 발생시킬 수 있습니다. 32비트와 64비트 윈도우에서 regsvcs, regasm, gacutil의 경로가 다르기 때문입니다.

서버와 개발자 PC에 각각 환경변수 PATH를 적절히 잡아 주면 다음에 방법을 사용하지 않으셔도 됩니다. 환경변수를 매번 잡아주지 않고도 빌드 후 이벤트가 작동되도록 하려면 다음을 빌드 후 이벤트에 추가하세요.

echo ***** 빌드 후 이벤트 시작*****
set PROCESSOR_ARCHITEW6432
if ERRORLEVEL 1 GOTO x86
if NOT ERRORLEVEL 1 GOTO x64

:x86
set GACUTIL="%ProgramFiles%\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe"
set REGSVCS="%windir%\Microsoft.NET\Framework\v2.0.50727\RegSvcs.exe"
set REGASM="%windir%\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe"
GOTO end

:x64
set GACUTIL="%ProgramFiles(x86)%\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe"
set REGSVCS="%windir%\Microsoft.NET\Framework64\v2.0.50727\RegSvcs.exe"
set REGASM="%windir%\Microsoft.NET\Framework64\v2.0.50727\RegAsm.exe"
GOTO end

:end
echo gacutil 경로 : %GACUTIL%
echo regsvcs 경로 : %REGSVCS%
echo regasm  경로 : %REGASM%

%REGASM% "$(TargetPath)"
%GACUTIL% /i "$(TargetPath)"
%REGSVCS% /u "$(TargetFileName)"
%REGSVCS% "$(TargetPath)"


검은 글씨는 프로젝트에 따라서 변경되는 부분이겠습니다. regasm, regsvcs, gacutil 명령어 대신 %REGASM%, %GACUTIL%, %REGSVCS%를 사용하면 됩니다.

'.Net > Visual Studio 2005' 카테고리의 다른 글

.NET 2.0 gacutil.exe, RegSvcs.exe 32bit/64bit 경로  (0) 2007.10.31
VS2005 Strong Name Interop  (0) 2007.10.30