2014-02-21 8 views
0

WiX를 사용하여 설치 프로그램을 작성하여 두 개의 종속 구성 요소와 함께 VSIX를 설치했습니다. 이 두 가지 구성 요소는 병합 모듈 형태로 나와 사용할 수있었습니다. 다음은 내 코드에서 병합 모듈을 사용하는 코드입니다 :WiX를 사용하는 모든 사용자를위한 병합 모듈 설치

<DirectoryRef Id="TARGETDIR"> 
    <Merge Id="MergeModuleID1" SourceFile="MergeModule1.msm" DiskId="1" Language="0"/> 
    <Merge Id="MergeModuleID2" SourceFile="MergeModule2.msm" DiskId="1" Language="0" /> 
</DirectoryRef> 

와 나는 다음과 같이 병합 모듈을 언급했습니다

<Feature Id="ProductFeature" Title="Title" Level="1"> 
    <ComponentRef Id="VSPackage"/> 
    <ComponentRef Id="ApplicationShortcut"/> 
    <ComponentRef Id="DesktopShortcut"/> 
    <ComponentRef Id="LicenseComp"/> 
    <MergeRef Id="MergeModuleID1"/> 
    <MergeRef Id="MergeModuleID2"/> 
</Feature> 

내가 직면하고있어 문제 내 VSIX이라고한다 컴퓨터의 모든 사용자 계정에 설치되지만 이러한 병합 모듈은 제품이 설치된 사용자 계정에만 설치됩니다. 다른 사용자 계정에서는이 병합 모듈을 설치하는 것으로 생각되는 설치 대화 상자가 나타납니다. 그 후에는 모든 것이 잘 작동합니다. 이 병합 모듈을 모든 사용자에게 설치하려면 어떻게합니까?

P.S : MSI 및 병합 모듈 모두에서 ALLUSERS 속성이 '1'로 설정됩니다.

답변

2

그 질문을 다소 명확하게해야 할 수도 있습니다. 병합 모듈은 파일 만 설치되므로 병합 모듈의 파일이 잘못되어 있다는 뜻입니다. 그렇습니까? 또한 파일은 디스크상의 위치에있는 사용자 계정에 설치되지 않습니다.

내 길을 짐작하면 파일이 설치 사용자의 사용자 응용 프로그램 데이터 위치와 같은 위치에 설치된다고 말할 수 있습니다. 그것이 병합 모듈이 내부에서 지정하는 것이라면 정상입니다. 시스템마다 설치를 수행하는 경우에도 현재 사용자의 응용 프로그램 데이터 폴더에 파일을 설치할 수 있습니다. 이러한 병합 모듈이 올바르게 설계되었는지 여부는 알 수 없지만 다음과 같은 경우에는 말할 수 없습니다.

  1. 이러한 파일은 설치 사용자 파일 위치에 저장됩니다.
  2. 다른 사용자가 로그온하여 바로 가기를 사용하고 MSI가 올바르게 설계된 경우 주문형 설치 기능은 해당 사용자의 해당 파일을 해당 사용자의 폴더에 설치하고 원래 설치 미디어를 요청할 수 있습니다. 이것은 이것이 작동하도록 설계된 이유입니다. a) 시스템의 모든 사용자 파일 위치에 동시에 파일을 설치할 수있는 메커니즘이 없으며 앱을 사용하지 않는 경우 아무런 의미가 없습니다. b) 제품을 설치 한 후 새 사용자 계정을 만들면 어떻게됩니까? 파일은 해당 사용자의 위치에 있지 않지만, 필요할 때 설치 구성표에 로그온하면이 새 사용자가 해당 위치에 파일을 가져 오게됩니다.

짧은 대답은 아마도 의도 한대로 작동한다는 것입니다.

0

ALLUSERS 설정이 정상입니다.

"광고"처럼 보입니다.

<Feature Id="ProductFeature" Title="Title" AllowAdvertise="no" Level="1"> 
    <ComponentRef Id="VSPackage"/> 
    <ComponentRef Id="ApplicationShortcut"/> 
    <ComponentRef Id="DesktopShortcut"/> 
    <ComponentRef Id="LicenseComp"/> 
    <MergeRef Id="MergeModuleID1"/> 
    <MergeRef Id="MergeModuleID2"/> 
</Feature> 
:

는 = "no"로 MergeRef 요소를 포함하는 기능의 특성에 AllowAdvertise를 추가, 병합 모듈에 대한 광고를 제거하려면