2015-01-15 3 views
0

msiexec/i myproduct.msi LANG = 1.간단한 WIX msi에서 명령 줄 매개 변수를 전달하는 방법은 무엇입니까?

저는 bootstraper 프로젝트가 없습니다. 간단한 Product.wxs 파일을 가진 wix 프로젝트가 있습니다. lang = 1이면 레벨 3 기능을 실행하고 싶지 않습니다. 난 당신이 당신이 실행시에 필요로하는 레지스트리 항목을 알고 있기 때문에 HKLM 또는 HKCU

<Feature Id="ProductFeature" Level="1"> 
     <Condition Level="2">LANG=1</Condition> 
     <Condition Level="3">LANG=0</Condition> 
     <Feature Id="MyFeatureBHJ" Title="My Feature BGJ" Level="2"> 
      <?define DllRegLocationGj = "HKCU" ?> 
      <ComponentGroupRef Id="ProductComponents" />   
     </Feature> 
     <Feature Id="MyFeatureBHJttgj" Title="My Feature BjjGJ" Level="3"> 
     <?define DllRegLocationGj = "HKLM" ?> 
     <ComponentGroupRef Id="ProductComponents" />    
     </Feature> 
</Feature> 

답변

0

에 기록 할 경우 레지스트리 값을 설정하는 변수를 설정하려고하고있는 LANG 매개 변수를 기반으로, 당신은 왜 중첩 된 기능을 이동하지 않습니다 ("MyFeatureBHJ"및 "MyFeatureBHJttgj")를 부모 기능인 "ProductFeature"에서 제외 하시겠습니까? 그런 다음 기능 이름을 명령 줄을 통해 직접 전달하십시오.

msiexec /i install.msi ADDLOCAL= ProductFeature ,MyFeatureBHJ 

or 

msiexec /i install.msi ADDLOCAL= ProductFeature , MyFeatureBHJttgj 

업데이트 : 그래서 이상적으로 당신의 기능 요소는 다음과 같이 표시됩니다 내가 명령 줄에서 통과 할 때

<Feature Id="ProductFeature" Level="1">    
       <!--All components list goes here--> 
    </Feature> 
    <Feature Id="MyFeatureBHJ" Title="My Feature BGJ" Level="1"> 
       <!--Component specific to feature BHJ-->   
    </Feature> 
    <Feature Id="MyFeatureBHJttgj" Title="My Feature BjjGJ" Level="1"> 
       <!--Component specific to feature BHJttgj-->   
    </Feature> 
+0

WHE HKCU의 HKLM은 위의 경우 실제로 모든 기능이 설치됩니다. 예를 들어 msiexec/i install.msi ADDLOCAL = ProductFeature, MyFeatureBHJ –

+0

상위 기능 "ProductFeature"에서 중첩 된 기능 ("MyFeatureBHJ"및 "MyFeatureBHJttgj")을 이동 했습니까? – Isaiah4110

+0

업데이트를 확인하면 기능 목록이 이와 유사해야합니다. 그런 다음 ADDLOCAL 속성을 사용하여 1과 2 또는 1 & 3 중에서 원하는 모든 기능을 말해야합니다. – Isaiah4110

0

당신이 올바른지, 당신의 대답은 작동합니다, 수고가 내 경우, 설치 기능 "U"는이 설정 변수 대신

MSIEXEC/I OfficeAddInSetup.msi ADDLOCAL = "U"

<Feature Id="U" Title="Excel Add-in" Level="1"> 
    <?define DllRegLocationGj = "HKCU" ?> 
    <ComponentRef Id="ExcelRegistry_FriendlyName_HKCU" />  
    </Feature> 

    <Feature Id="L" Title="Excel Add-in" Level="1"> 
    <?define DllRegLocationGj = "HKLM" ?> 
    <ComponentRef Id="ExcelRegistry_FriendlyName_HKLM" />  
    </Feature> 

     <Component Id="ExcelRegistry_FriendlyName_HKCU"> 
     <RegistryValue Id="ExcelRegistry_FriendlyName_HKCU" Root="$(var.DllRegLocationGj)" 
         Key="Software\Microsoft\Office\Excel\AddIns\ExcelAddIn" 
         Name="FriendlyName" 
         Value=ExcelAddIn" 
         Type="string" KeyPath="yes" /> 
     </Component> 



     <Component Id="ExcelRegistry_FriendlyName_HKLM"> 
     <RegistryValue Id="ExcelRegistry_FriendlyName_HKLM" Root="$(var.DllRegLocationGj)" 
         Key="Software\Microsoft\Office\Excel\AddIns\ExcelAddIn" 
         Name="FriendlyName" 
         Value="ExcelAddIn" 
         Type="string" KeyPath="yes" /> 
     </Component> 
관련 문제