2013-12-18 2 views

답변

2

올바른 방향을 얻으려면이 추가 주먹에 MSI를 (물론 첫 번째 사용자의 요구에 적응) :

<DirectoryRef Id="INSTALLDIR"> 
    <Component Id="RegistryEntries" Guid="{0AC76129-F8E2-47D3-B9FD-09B1E10A8541}"> 
    <RegistryKey Root="HKLM" Key="Software\Company123\App123" Action="create"> 
     <RegistryValue Type="integer" Name="SomeIntegerValue" Value="1" KeyPath="yes"/> 
     <RegistryValue Type="string" Name="UserInput" Value="[USERINPUT]" /> 
    </RegistryKey> 
    </Component> 
</DirectoryRef> 

설치할 때 <Feature><ComponentRef Id="RegistryEntries" /> 에서 구성 요소를 참조 잊지 마세요 속성 [USERINPUT]에 값을 지정하십시오. msiexec /i your.msi /qb+ USERINPUT="the value to be saved in registry"

그런 다음 두 번째 MSI이 같은 것을 추가 : 설치 USERINPUT= 동안 입력 된 값/문자열 다음은 부동산 READREGISTRY

조각에 두 번째 MSI에 저장됩니다

<Property Id="READREGISTRY"> 
     <RegistrySearch Id="USERINPUT_Value" Root="HKLM" Key="Software\Company123\App123" Name="UserInput" Type="raw" /> 
    </Property> 

내 두 번째 msi에 로그인하십시오 :

PROPERTY CHANGE: Adding READREGISTRY property. Its value is 'testing registry wef wef wef w'. 

또는 Per Per Machine 설치를 위해 루트를 HKCU로 조정하거나 PerMachine의 경우 HKLM으로 두십시오.

자세한 내용은 Wix 문서, 힌트 : "방법 : 설치 중 레지스트리 항목 작성"및 "방법 : 설치 중 레지스트리 항목 읽기"를 참조하십시오.

+0

대단히 감사합니다. 정확히 내가 찾고있는 것이 었습니다. – Hahn

0

MSI에서 먼저 설치 한 사용자 지정 작업을 만든 다음 원하는 값/사용자 항목을 파일이나 레지스트리에 씁니다. 최종 MSI 내에서 레지스트리/파일의 값을 읽고 사용하십시오.

다음은 사용자로부터 값을 읽고 app.config를 업데이트하는 방법의 예입니다. 이는 사과 대 사과 시나리오는 아니지만이를 통해 안내 할 것입니다.

http://bensnose.blogspot.com/2013/03/more-custom-actions-with-wix.html

면책 조항 :이 블로그 게시물에서 언급되고 있는지 시도 havent 한, 그러나 나는 매우 비슷한 짓을하고, 좋은 설명을 가지고 내가 거기에 링크를 게시하는 이유 이잖아 것으로 나타났습니다.

2

일반적으로 없습니다. Windows Installer 패키지가 사용자로부터받는 입력을 기록 할 필요는 없습니다. 일부는 레지스트리에 일부 정보를 기록하고 그 정보를 찾는 데 의존 할 수도 있습니다.

다른 설치 프로그램은 UI없이 실행될 수 있으며 해당 UI에 전달 된 속성으로 충분히 제어 할 수 있습니다. 그렇다면 설치 프로그램을 실행하기 전에 입력을 수집하기 위해 자신의 UI (사용자 정의 WiX 부트 래퍼 응용 프로그램 [example])를 작성할 수 있습니다.

관련 문제