2013-02-27 1 views
1

나중에 VBScript에서 사용하는 C#에서 COM 개체를 만들었습니다. VBScript가 개체를 인스턴스화 할 수 있으려면 개체를 등록해야합니다. 이전에는 .NET Framework와 함께 제공되는 RegAsm 도구를 사용하여 객체를 수동으로 등록했습니다.내 C# DLL 자체 등록 DLL을 만드는 방법

그러나 다른 컴퓨터에이 개체를 설치할 수 있도록 설치 프로그램을 만들고 있으며 InstallShield 2012 Spring Express를 사용할 때 dll이 자체 등록되지 않는다고 경고합니다.

어떻게 DLL을 자체 등록 할 수 있습니까? C#에서 RegAsm을 호출하기 위해 Process 객체를 사용하는 사람들의 가이드와 예제를 찾았지만 내 객체는 실행 파일이 아닙니다.

답변

5

사용자 지정 작업 및 자체 등록은 이 아니며 모범 사례입니다.

COM 상호 운용성을 지원하지 않습니다의 InstallShield 버전은 명령을 실행하는 경우 :

RegAsm을의 foo.dll를 /regfile:foo.reg

지금의 installshiled에 그 등록 파일을 가져 조정할 일이 foo에 파일을 .dll을 [INSTALLDIR] foo.dll로 변경하십시오.

사용중인 버전의 InstallShield가 reg 파일 가져 오기를 지원하지 않는 경우 메모장에서 편집하고 값을 InstallShield에 직접 입력하십시오.

사용자 지정 작업을 수행하지 않아도되며 MSI가 데이터를 제거하고 롤백하는 방법을 알고있는 등록을 처리하므로 가장 안전한 방법입니다.

1

InstallShield를 사용하는 경우 InstallShield에 유형 라이브러리를 등록하도록 요청할 수 있습니다. 구성 요소 -> 예를 들어 DLL ->.NET 설정 ->.NET COM Interop을 예로 설정하십시오. 경우 당신이 이것을 지원하지 않습니다의 InstallShield 버전을 사용하는

InstallShield setting screenshot

, 당신의 DLL을 등록 할 수는 RegAsm.exe를 호출하는 사용자 지정 작업을 작성합니다.

+0

내 InstallShield 버전이 위에있는 기능을 지원하지 않습니다. 커스텀 액션은 어떻게 생겼을까요? 정적 위치에 설치하려면 dll이있어 사용자가 변경할 수 없기 때문에 사용자 지정 작업에서 regasm을 호출하는 방법을 알아야합니다. regasm의 경로 등은 어떻게 찾습니까? – Tada

+0

@Tada이 게시물이 도움이되는지 확인하십시오. http://shieldmaster.wordpress.com/2010/07/26/primer-on-creating-installscript-custom-actions/ 사용자 지정 작업을 만들려면 InstallShield에 대한 지식이 필요합니다. –

+0

@Tada이 기사에 따르면 http://kb.flexerasoftware.com/doc/Helpnet/isxhelp12/IDlgFilePropertiesComNetSettings.htm .NET 등록은 InstallShield Express에서도 지원됩니다. 그래서 당신의 버전이 그것을 지원하지 않을 이유가 없습니다. –

관련 문제