Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Visual C++ 프로젝트의 빌드 이벤트에서 환경 변수 사용하는 방법

전역적으로 사용하는 COM 객체가 있는데 빌드할 때마다 잠겨 여간 불편한 것이 아닙니다. 이럴 때는 빌드 이벤트에서 "Pre-Build Event"를 통해 빌드 전에 기존 빌드된 COM DLL의 이름을 바꾸는 식으로 우회할 수 있습니다.

그래서 다음과 같이 "Command Line" 내용을 구성해봤는데요.

SET DATETIME=...[생략]...
ren $(TargetPath) $(TargetName)_%DATETIME%$(TargetExt)

아쉽게도 이렇게 해주면 %DATETIME% 문자열을 다음과 같이 깨진 체로 인식하게 되고 결국 명령은 실패하게 됩니다. ("\00DA"의 유니코드 문자가 "Ú"입니다.)

ren C:\...[생략]...\COMObject64.dll COMObject64_ÚTETIME%.dll

즉, '%' 문자가 이스케이프 시퀀스 용도가 되기 때문에 그대로 쓰면 안된다는 것인데요. 따라서, % 문자 자체를 나타내기 위해 그 문자 코드에 따라 '%' 대신 '%25'로 쓰면 됩니다. 결국, ^^ 최종적으로 다음과 같은 명령행을 구성해 주면 COM 구성 요소 빌드 전에 파일명을 바꿔주어 잠김 오류 없이 빌드에 성공하게 됩니다. ^^

del /q $(OutputPath)$(TargetName)_*.dll

SET DATETEXT=%25date:~0,4%25%25date:~5,2%25%25date:~8,2%25
SET TIMETEXT=%25time:~0,2%25%25time:~3,2%25%25time:~6,2%25

SET DATETIME=%25DATETEXT%25_%25TIMETEXT%25

ren "$(TargetPath)" "$(TargetName)_%25DATETIME%25$(TargetExt)"
exit 0

prebuildevent_vc_1.png




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 10/1/2015]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 181  182  183  184  185  186  [187]  188  189  190  191  192  193  194  195  ...
NoWriterDateCnt.TitleFile(s)
286정성태6/23/200622410웹: 4. 웹 사이트 식별자(Identifier) 값 변경
285정성태6/20/200622656오류 유형: 9. [TFS] Report 관련 서비스를 조회할 때 rsErrorImpersonatingUser 오류 메시지 발생 [1]
284정성태6/19/200620426VS.NET IDE: 40. FxCop - IDE 에서 제공해 주는 SuppressMessage 코드
283정성태1/19/200721323Team Foundation Server: 8. 소스 세이프에서 TFS SourceControl 로 마이그레이션 [2]
279정성태12/27/200626707개발 환경 구성: 3. VS.NET 원격 디버깅 [1]
280정성태6/12/200626176    답변글 개발 환경 구성: 3.1. VS.NET 2003 원격 디버깅 설정
281정성태8/11/200627658    답변글 개발 환경 구성: 3.2. VS.NET 2005 원격 디버깅 설정
315정성태8/11/200628291        답변글 개발 환경 구성: 3.3. VS.NET 2005 원격 디버깅 설정 - ASP.NET F5 디버깅
278정성태6/11/200624858오류 유형: 8. [Outlook] 0x8004011D 에러 - "Exchange over the Internet" 환경
276정성태6/7/200618337Team Foundation Server: 7. 외부 빌드 머신 구성
287정성태6/24/200615956    답변글 Team Foundation Server: 7.1. 외부 빌드 머신 구성 - 다른 블로그 자료
275정성태6/7/200623847디버깅 기술: 4. VC++ 8.0 원격 디버깅 구성 - Side-by-Side DLL 문제.
269정성태6/6/200621036Team Foundation Server: 6. HTTPS를 통한 Team Server 접근 [1]
270정성태6/5/200617999    답변글 Team Foundation Server: 6.1. HTTPS를 통한 Team Server 접근 [1]
273정성태6/6/200620745    답변글 Team Foundation Server: 6.2. 두번째 방법 - HTTPS 를 통한 Team Server 접근 [1]
267정성태6/4/200620045Team Foundation Server: 5. 인터넷으로 Team Server 접근 [2]
266정성태6/8/200616651오류 유형: 7. [설치] mpoai9.dll 관련 오류
265정성태6/1/200624402디버깅 기술: 3. 원격 컴퓨터 디버깅 - VPC 설정
314정성태8/11/200621472    답변글 디버깅 기술: 3.1. Managed 원격 디버깅과 WinDBG 원격 디버깅
264정성태6/1/200630574오류 유형: 6. [VC++ 컴파일] already defined in ntdll.lib(ntdll.dll)
263정성태6/1/200631472디버깅 기술: 2. 커널 구조체 살펴보기 [5]
262정성태6/1/200623881오류 유형: 5. [설치] WinFX Beta2 - 설치시 문제점 해결
261정성태6/1/200620334웹: 3. IIS 6.0 - AppPool을 활용하여 실 서버(운영 서버)에서 디버깅
258정성태6/1/200628238디버깅 기술: 1. 디버깅 방법 - CLR 프로파일러 [1]파일 다운로드1
274정성태6/7/200621152    답변글 디버깅 기술: 1.1. 디버깅 방법 - CLR 프로파일러 ( on Vista )
254정성태6/1/200617602개발 환경 구성: 2. VPC에 Vista 설치하는 방법 [2]
... 181  182  183  184  185  186  [187]  188  189  190  191  192  193  194  195  ...