|
윈도우 프로젝트 필수 유틸리티
![]() 윈도우 프로젝트 필수 유틸리티 FAQ
1 P.174-P.175 Apache와 IIS를 동시에 사용하기 #174 페이지 부터 175 페이지까지 기술되어 있는 Apache와 IIS를 동시에 사용하기에 대한 좀더 자세한 설명입니다.
하지만 이렇게 같은 IP 주소에 다른 포트 번호를 설정하더라도 IIS와 Apache가 동작하지 않기 때문에 httpcfg.exe로 iplisten 설정을 해주는 것입니다.
2 Apache에 Subversion 설정을 했으나 에러가 발생한다. #Apache에 아래와 같이 Subversion 설정을 했을 때
NameVirtualHost *:80
<VirtualHost *:80>
<Location /svn>
DAV svn
SVNParentPath "d:\svn"
AuthzSVNAccessFile "d:\svn\authz"
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile "d:\svn\htpasswd"
Requre vaild-user
</Location>
</VirtualHost
다음과 같은 에러가 발생합니다.
The requested operation has failed!
LoadModule dav_module modules/mod_dav.so ... LoadModule authz_svn_module "C:\Program Files\Subversion\bin\mod_authz_svn.so" LoadModule dav_svn_module "C:\Program Files\Subversion\bin\mod_dav_svn.so"
3 Trac 0.11을 설치 했는데 pkg_resources.DistributionNotFound: Trac==0.11 에러가 발생 #책에는 Trac 0.11b2를 설치하라고 되어 있습니다. 하지만 Trac 0.11을 .exe로 된 설치 파일로 설치하신 분들 중에서 pkg_resources.DistributionNotFound: Trac==0.11 에러가 발생할 수 있습니다.
easy_install http://svn.edgewall.org/repos/trac/tags/trac-0.11 4 위키에서 ?(물음표)가 생길때 #위키는 기본적으로 Camel Case (예: AutoCompute) 단어에 대해 자동 링크를 생성하게 됩니다. 하지만 각 Camel Case 단어에 해당하는 위키 페이지가 없을 때에 단어 뒤에 ?(물음표)가 붙게 됩니다.
이 ?(물음표)를 표시하지 않기 위해서는 Camel Case 단어 앞에 !(느낌표)를 붙입니다.
!AutoCompute 5 PowerShell에서 symstore.exe가 실행되지 않을 때 #'symstore.exe' 용어는 cmdlet, 함수, 실행할 수 있는 프로그램 또는 스크립트 파일로 인식되지 않습니다. 용어를 확인하고 다시 시도하십시오. Files\Debugging Tools for Windows\srcsrv가 추가되어 있는지 확인. 추가되어 있지 않다면 위 두 경로를 추가하고 재부팅. 2. 변수에 symstore.exe를 넣고 실행
$symstore = {symstore.exe add /o /r /f $symbol_root /s D:\Symbols /t "$project" /compress}
&$symstore
3. 전체 경로를 지정하여 실행
."C:\Program Files\Debugging Tools for Windows (x86)\symstore.exe" add /o /r /f $symbol_root /s D:\Symbols /t "$project" /compress 6 PowerShell에서 잘못된 디렉터리 경로 문제 #디렉터리 경로에 [ ]와 같은 영문자, 숫자 이외의 문자가 들어가 있으면 PowerShell에서 에러가 발생합니다.
D:\[Repositories]\Scripts D:\Repositories\Scripts 7 CruiseControl.NET에서 빌드가 정상적으로 완료되었는데 에러로 표시될 때 #실제로 빌드는 정상적으로 완료되어 바이너리 파일이 생성되었는데도 CruiseControl.NET상에는 에러(Failure, Exception)로 표시될 때가 있습니다.
이 때에는 해당 프로젝트에서 <exec>등으로 실행한 배치 파일 및 각종 Perl 스크립트가 출력하는 문자열 중에서 < > [ ] 등의 문자가 있을 때 에러가 발생합니다. 따라서 배치 파일 및 스크립트 파일에서 로그를 출력할 때에는 < > [ ] 문자를 출력하지 않는 것이 좋습니다.
윈도우 프로젝트 필수 유틸리티 추가 팁
1 디지털 서명 자동화 하기 #CruiseControl.NET으로 디지털 서명을 자동화 하는 방법입니다. WDK 6001의 signtool.exe를 사용하면 일일이 비밀번호를 입력하지 않아도 디지털 서명을 할 수 있습니다.
signtool.exe에서 사용되는 인증서는 PFX 형식의 인증서입니다. SPC, PVK 형태의 인증서를 가지고 있다면 pvk2pfx.exe를 사용하여 PFX 형식으로 변환하여야 합니다.
C:\WinDDK\6001\bin\SelfSign\pvk2pfx.exe -pvk hello.pvk -spc hello.spc -pfx hello.pfx
<!-- 디지털 서명 -->
<exec>
<executable>signtool.exe</executable>
<baseDirectory>C:\WinDDK\6001\bin\SelfSign</baseDirectory>
<buildArgs>sign /f C:\Cert\hello.pfx
/p 인증서 암호
/t http://timestamp.verisign.com/scripts/timestamp.dll
C:\build\hello\Release\hello.exe</buildArgs>
</exec>
또는 PFX 형태의 인증서를 컴퓨터에 설치하였다면
<!-- 디지털 서명 -->
<exec>
<executable>signtool.exe</executable>
<baseDirectory>C:\WinDDK\6001\bin\SelfSign</baseDirectory>
<buildArgs>sign /v /s my /n "Hello Co., Ltd."
/t http://timestamp.verisign.com/scripts/timestamp.dll
C:\build\hello\Release\hello.exe</buildArgs>
</exec>
64비트 커널 모드 드라이버라면
<!-- 디지털 서명 -->
<exec>
<executable>signtool.exe</executable>
<baseDirectory>C:\WinDDK\6001\bin\SelfSign</baseDirectory>
<buildArgs>sign /v /ac MSCV-VSClass3.cer
/s my /n "Hello Co., Ltd."
/t http://timestamp.verisign.com/scripts/timestamp.dll
C:\build\hello\Release\hello.exe</buildArgs>
</exec>
MSCV-VSClass3.cer는 베리사인용 Cross-Certificate입니다. 이것은 Microsoft Cross-Certificates for Windows Vista Kernel Mode Code Signing에서 각자 인증서 회사에 맞는 것을 받아서 사용합니다.
2 커밋 되었을 때 빌드 하기 #Subversion에 소스를 커밋하였을 때 빌드하는 방법입니다. 아래 예제는 1초마다 소스가 수정(커밋)되었는지 확인한 뒤 수정되었다면 빌드합니다.
<triggers>
<intervalTrigger name="commit"
seconds="1" buildCondition="IfModificationExists"/>
</triggers>
buildCondition에는 IfModificationExists를 설정하여 소스가 수정되었을 때 빌드하도록 합니다. ForceBuild를 설정하면 소스의 수정(커밋)여부와 관계없이 무조건 빌드하게 됩니다.
3 2010년 이후 PowerShell 스크립트 설정 #현재 책에 포함된 PowerShell 스크립트는 전체 연도를 만들어내기 위해 9.12.31 형태의 날짜의 앞에 200 숫자를 붙입니다. 이렇게 하여 2009.12.31.1과 같은 날짜 형식의 버전이 생성됩니다.
2010년 이후에는 10.1.4와 같이 되기 때문에 날짜의 앞에 200이 아닌 20을 붙여야 2010.1.4.1과 같은 날짜 형식의 버전을 생성할 수 있습니다.
420P "날짜를 버전으로 사용하기"
rcversion-date.ps1
...
$full_date = "20"+$date+"."
...
$year = "20"+(get-date -format %y)
...
tracversion-date.ps1
...
$full_date = "20"+$date+"."
...
$version_string = "20"+$date+"."+$next_version
...
하지만 이 방법은 2099년 까지 밖에 사용할 수 없으니 2100년 이후에도 사용할 수 있게 하고 싶은 분들은 아래와 같이 수정하면 연도 변화와 관계 없이 사용할 수 있습니다. (그때까지 이 스크립트가 남아있을지는 의문이지만)
rcversion-date.ps1
...
$date = (get-date -uformat %Y)+"."+(get-date -format %M.%d)
...
$full_date = $date+"."
...
$year = get-date -uformat %Y
...
tracversion-date.ps1
...
$date = (get-date -uformat %Y)+"."+(get-date -format %M.%d)
...
$full_date = $date+"."
...
$version_string = $date+"."+$next_version
...
윈도우 프로젝트 필수 유틸리티 오탈자
WebSVN으로 Subversion 저장소를 웹에서 보기 P.332 #$lang["DAYLETTER"] = "년"; $lang["DAYLETTER"] = "일"; 오타를 알려주신 윤좌진(ifree1999)님께 감사드립니다.
변경사항을 저장소에 반영하기(Commit) P.73 #C:\Windows\system32\drivers\etc\hosts C:\Documents and Settings\xp\바탕 화면\sample\hello.c 오타를 알려주신 imjinni님께 감사드립니다.
PowerShell로 자동화하기 P.108 #
PowerShell 명령행을 실행한 상태에서 조건문, 반복문, 분기문 함수를 사용하려면 해당 구문을 한 줄
로 작성해야 합니다. 예를 들어 조건문을 사용하려면 if () 뒤에 따라오는 {}는 같은 줄에 있어야 합니
다. 같은 줄에 있지 않으면 정상적으로 실행되지 않습니다.
PowerShell 명령행을 실행한 상태에서 조건문, 반복문, 분기문 함수는 해당 구문을 한 줄로 작성하면
간단하게 실행할 수 있습니다. 예를 들어 조건문을 사용하려면 if () 뒤에 따라오는 {}는 같은 줄에
있어야 합니다. 여러줄로 작성하였다면 해당 구문이 끝난 다음 맨 마지막 빈줄에서 엔터를 입력하면 함수가
실행됩니다.
잘못된 점을 알려주신 이정필(jplee19)님께 감사드립니다.
Apache와 Subversion 연동 P.183, P.184 #P.183
Organization Name : 단체명인데 사용할 도메인 명을 입력합니다(아파치 설치할 때 입력했던 도메인). Organizational Unit Name : 여기도 사용할 도메인을 입력합니다. Organization Name : 단체명입니다. 도메인을 입력해도 되고 회사 이름등을 입력해도 됩니다. Organizational Unit Name : 사용할 도메인을 입력합니다(아파치 설치할 때 입력했던 도메인). Common Name : 여기도 사용할 도메인을 입력합니다. P.184
Organization Name : 사용할 도메인을 입력합니다. Organizational Unit Name : 여기도 사용할 도메인을 입력합니다. Organization Name : 단체명입니다. 도메인을 입력해도 되고 회사 이름등을 입력해도 됩니다. Organizational Unit Name : 사용할 도메인을 입력합니다. Common Name : 여기도 사용할 도메인을 입력합니다. SVN Notifier P.316 #SVN Notifier은 TortoiseSVN을 설치해야 사용할 수 있습니다. SVN Notifier는 Subversion과 TortoiseSVN을 설치해야 사용할 수 있습니다. |
|
|
|
|
|