등록 COM 서버를 가진 WiX
-
03-07-2019 - |
문제
나는 하려고 결정하는 최상의 솔루션을 등록하 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 도구 일뿐입니다.
이 시도:
- 새 .NET 프로젝트를 만듭니다
- wxs를 모으고 싶은 후보자 com dll 또는 oop exe에 대한 프로젝트 참조 추가
- 파일을 검색하십시오
Interop.candidate.dll
(에서obj\debug
폴더) - 방금 찾은 인터 로프 DLL에서 Wix 열 도구를 실행하십시오.