'3. Implementation/Packaging'에 해당되는 글 3건

  1. 2011.08.17 [VS Setup] .Net 으로 작성된 COM 서버 배포하기
  2. 2011.08.05 [InnoSetup] 버전 문자열을 이용한 배포 파일 생성하기
  3. 2011.03.03 [InnoSetup] 명령어로 컴파일러 실행
2011. 8. 17. 04:26

[VS Setup] .Net 으로 작성된 COM 서버 배포하기

참고: http://www.simple-talk.com/dotnet/visual-studio/getting-started-with-setup-projects/
 
.Net 어셈블리로 작성된 COM 서버를 배포하는 방법은 다음과 같습니다.

전통적인 COM DLL 을 인스톨할 때, 타입 라이브러리 정보가 DLL 안에 존재합니다, 그래서 전통적인 COM DLL 을 등록하는 옵션을 설정하게 되면 타입 라이브러리 정보 또한 등록하게 됩니다.  .NET 어셈블리는 COM 타입 라이브러리 데이터를 가지고 있지 않아서, .NET 어셈블리내의 COM 클라이언트/서버 인터페이스가 타입 라이브러리 마샬링을 필요로한다면, (Tlbexp.exe를 이용하여) 어셈블리로부터 타입 라이브러리를 export 할 필요가 있습니다. 그러고 나서 그 타입 라이브러리를 setup 에 추가합니다. 이 .TLB 파일을 선택하면 레지스터 속성창에서 vsdrfCOM 옵션을 가지고 있는 보게 될 것입니다. 이 것을 선택하면 전통적인 방식으로 시스템에 타입라이브러리가 등록되도록 해 줍니다.

☞ tlbexp.exe 로 TLB 파일을 export 할 필요가 있다고 했는데, 기본적으로 output 폴더에 보면 tlb 파일이 생성되어 있습니다.

InnoSetup 으로 할 때는 그냥 regasm.exe 를 같이 인스톨하고, "regasm deployee.dll /codebase" 를 실행하는 batch 파일을 만들어 일괄적으로 등록하도록 했었습니다.

 
2011. 8. 5. 07:22

[InnoSetup] 버전 문자열을 이용한 배포 파일 생성하기

컴파일 된 exe 배포 파일의 이름이 버전을 포함하게 하고 싶을 때가 있습니다. 이전까지는 손수 파일 이름 변경을 하였습니다. 하지만 아래처럼 하면 간단하게 할 수 있습니다.

#define MyAppVersion "1.0"

[Setup]
OutputBaseFilename=Setup {#MyAppVersion}

참고: http://rmn-explores.blogspot.com/2011/04/creating-setup-files-using-inno-setup.html 
2011. 3. 3. 00:27

[InnoSetup] 명령어로 컴파일러 실행

InnoSetup 으로 패키징시 명령어에서 컴파일러를 실행할 수 있습니다.

compil32 /cc [script name]

Example:
compil32 /cc "c:isetupsamplesmy script.iss"

공백이 있는 경우 " 로 감싸져야 합니다.

또한, 콘솔모드 컴파일러인 ISCC.exe 를 이용하여 스크립트를 컴파일 할 수 있습니다.

iscc [options] [script name]

표준 입력으로 부터 읽어 오기 위해서는

iscc [options] -

Example:
iscc "c:isetupsamplesmy script.iss"

유효한 옵션은 출력 경로를 지정하기 위한 "/O", 출력 파일 이름을 지정하기 위한 "/F", 에러 메시지 외에는 출력하지 않는 조용한 컴파일을 위한 "/Q", 그리고 도움말을 보여주는 "/?" 등이 있습니다.

Example:
iscc /Q /O"My output" /F"MyProgram-1.0" "c:isetupsamplesmy script.iss"

ISCC 는 컴파일이 성공하면 종료코드로 0을 반환하고, 명령어 파라미터가 유효하지 않거나 내부 에러가 발생하였다면 1을, 컴파일이 실패하면 2를 반환합니다.