문제

나는 하려고 결정하는 최상의 솔루션을 등록하 COM 를 사용하여 서버 WiX 을 만드는 윈도우 설치 프로그램 패키지와 이 어려움을 겪고 있습니다.

이 게시물 배포공학 아카이브:HOWTO:사 Regsvr32.exe 을 가진 WIX, 기는 열에 대한 요청"설치 경찰"균열에 사용하 regsvr32 을 통해 exe 사용자 지정 작업입니다.나는 알고의 악용 regsvr32 으로 등록하는 시스템이 사용자보다는,하지만 나 또한 그 리콜 OleSelfRegister 문제가 발생할 수 있습에서 microsoft(안을 찾을 수 없습니다크)-그리고 나는 그들이 사용하는 것이 좋 regsvr32.

특별한 조언이 있나요?

도움이 되었습니까?

해결책

"읽는 사용하지 않 SelfReg 및 TypeLib 테이블에서":

https://msdn.microsoft.com/en-us/library/bb204770#no_selfreg

에 대한 WiX,살펴보 구성 요소 소에서 스키마에 참조:

http://wixtoolset.org/documentation/manual/v3/xsd/wix/component.html

통지의 특정 아이와 같은 요소 AppId, 클래스, ProgId, 레지스트리 그래서.적절한 기술을 사용하는 것입 COM extraction 을 반영하여 등록한 정보 및 그것은 배출 선언적으로 귀하의 설치 관리자 MSI 의 돌 수 있습니다 그것은 당신을 위해 하지 않고의 프로세스 코드(아 DllRegisterServer() 는)실패 할 수 있습지 또한 제공합 MSI 대한 통찰력을 발자국의 구성요소에서 수리와 광고 관점입니다.

다른 팁

Wix에 포함 된 도구 "tallow"가 있습니다. 올바른 레지스트리 항목을 자동으로 생성하는 데 사용할 수 있습니다. 그런 다음 WIX 설치를 구성하여 해당 항목을 작성하십시오. selfreg는 사용해서는 안됩니다.

로@Trampster,지적 heat.exe 하지 않는 좋은 일을 할 수확의 레지스트리의 항목에서 서버가 있습니다.내가 노력했지만 결과는 완전하지 않습니다.

대신 다음과 같은 조언에 모니터 레지스트리에 액세스(InstallSite 구:모니터링), 사 InstallShield RegSpyUI.이것이 가정으로 선박을 가진 버전의 Installshield v7 넘어,포함하여 평가 버전입니다.이 정보를 수 날짜나는지 확인할 수 있습니다 공급으로 꽤 많은 쓸모없는 Installshield 르에 오는 VS2013.

다행히 나았어의 사본이 있 InstallShield2010 그리고 이와 함께 RegSpyUI.

어쨌든,RegSpyUI 었도를 사용:점에서 COM.exe 추출,레지스트리 정보를니다.reg 파일입니다.그때 열을 사용하는 수확이로.다 파일을 추가할 수 있습을 소개하고,프로젝트

heat reg <some.reg> -gg -o <some.wxs>

그 후의 문제를 수정하는 하드 코딩 경로 포인트 COM.exe 의 위치는,그래서 그들은 그 반영하기위한 설치 폴더에 있습니다.

예:는 경우.다 파일에 의해 만들어 RegSpyUI+열있는 뭔가가 다음과 같이

<Fragment>
    <DirectoryRef Id="TARGETDIR">
        <Component Id="blah" Guid="{xxxxxxxxxxxxxxxxxxxxxxxxx}" KeyPath="yes">
            <RegistryKey Key="TypeLib\{xxxxxxxxxxxxxxxxxxxxxx}\4.1\0\win32" Root="HKCR">
                <RegistryValue Value="C:\Users\you\projects\MyProject\dependencies\installation\COMFOO.exe" Type="string" />
            </RegistryKey>
        </Component>
    </DirectoryRef>
</Fragment>

과를 설치하에서 당신의 기본을 소개하고,파일

<Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="ProgramFilesFolder" Name="PFiles">
            <Directory Id="COMPANY" Name="My Company">
                <!--This is the actual installation folder-->
                <Directory Name="MyProduct" Id="MYPRODUCT">

다음 단순히 편집 RegistryValue@value 경로를..."[MYPRODUCT]\COMFOO.exe"

이에 대한 단점은 하나뿐입니다. Heat.exe를 통한 Wix Com 등록은 .exe com 서버에서 작동하지 않습니다. InstallShield와 그 도구는 그것을 지원하는 것처럼 보이지만 Regspyui는 제작 기계에서 실행할 수있는 도구가 아니라 UI 도구 일뿐입니다.

이 시도:

  1. 새 .NET 프로젝트를 만듭니다
  2. wxs를 모으고 싶은 후보자 com dll 또는 oop exe에 대한 프로젝트 참조 추가
  3. 파일을 검색하십시오 Interop.candidate.dll (에서 obj\debug 폴더)
  4. 방금 찾은 인터 로프 DLL에서 Wix 열 도구를 실행하십시오.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top