웹 참조 자동 업데이트 코드

아래는 UpdateWebReference.bat 파일 내용

@ECHO OFF
REM 지정한 WSDL을 이용하여 Proxy 클래스를 생성해낸다.
REM 웹 참조 업데이트 기능을 빌드 전 이벤트에서 배치 처리하기 위해서 만든 유틸리티.
REM 첫번째 매개변수 - 웹 참조 이름
REM 두번째 매개변수 - 프로젝트 이름
REM 세번째 매개변수 - 프로젝트 경로
REM 네번째 매개변수 - ASMX 파일의 URL

wsdl.exe /language:CS /namespace:%2.%1 /out:"%3Web References%1Reference.cs" %4?wsdl
wget.exe %4?wsdl -O "%3Web References%1%1.wsdl"
wget.exe %4?disco -O "%3Web References%1%1.disco"


날림으로 만들었지만 결과물은 아주 만족스럽다.
물론 여기 들어오는 사람 중에 웹서비스 놀이 하는 분은 없겠지만..
wget은 윈도우 버전을 받고, PATH 환경 변수에 디렉터리를 집어넣는다.

비주얼 스튜디오에서 프로젝트 속성에 가서 빌드 전 이벤트에
call UpdateWebReference 웹참조이름 $(ProjectName) $(ProjectDir) ASMX경로
call UpdateWebReference 웹참조이름 $(ProjectName) $(ProjectDir) ASMX경로
...
call UpdateWebReference 웹참조이름 $(ProjectName) $(ProjectDir) ASMX경로

이런 식으로 써주면 된다.
가끔 UI에 빌드 전 이벤트가 안 나타나는 경우도 있는데, 걱정마시라.
csproj 파일 직접 열어서 Settings 요소의 PreBuildEvent 속성을 편집해버리면 다 먹힌다.
Visual Studio의 UI에서만 안 보이는 것 뿐이다.

이제 URL 참조를 동적으로 변경하고 설정 파일 셋팅한 다음
FTP로 밀어넣는 것만 Integration Server에 집어넣어버리면 거의 일주일 걸리던 셋팅이 다 끝날거다..

더 이상 내 인생에 구질구질한 ASP.NET 파서 오류는 없다!!
(빌게는 양심이 있으면 다음 VS 버전에 웹 참조 업데이트 매크로 꼭 넣어라-_-)

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://www.xeraph.com/tb/2236096 [도움말]

덧글

댓글 입력 영역