2012-05-08 21 views
18

MSI paketleri oluşturmak ve bunları Bootstrapper kurulumunda toplamak için VS2010 ve WiX 3.6 kullanıyorum. İşte Boostrapper kodum.Önyükleyiciden msi paket paketine geçiş parametreleri

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Bundle Name="" Version="" Manufacturer="" UpgradeCode=""> 
     <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" /> 

     <Chain> 
       <MsiPackage SourceFile="Package1.msi"> 
       <MsiProperty Name="PARAM1" Value="[PARAM1]" /> 
       <MsiProperty Name="PARAM2" Value="[PARAM2]" /> 
       </MsiPackage> 
       <MsiPackage SourceFile="Package2.msi"> 
       <MsiProperty Name="PARAM1" Value="[PARAM1]" /> 
       <MsiProperty Name="PARAM2" Value="[PARAM2]" /> 
       </MsiPackage> 
     </Chain> 
    </Bundle> 
</Wix> 

MSI paketlerinin çalışması için belirtilen parametreler olmalıdır. Normalde "Packag21.msi PARAM1=1 PARAM2=2"'u arardım. Projeyi oluşturduktan sonra, parametreleri Bootstrapper.exe PARAM1=1 PARAM2=2 ile aynı şekilde Bootstrapper.exe aracına aktarmaya çalışıyorum, ancak bunları MSI'ye iletmiyor. Kurulumlar eksik parametre koşulu ile asılır.

Parametreleri exe'den msi'ye geçirmenin bir yolu var mı? Şu anda standart Önyükleyici mevcut değildir

cevap

5

: Kendi önyükleyici uygulama oluşturmak eğer WixStdBa doesn't make the commandline properties available - ID: 3489809

Böyle işlevleri uygulayabilirsiniz.

DÜZENLEME: Eğer komut satırı üzerinden Önyükleyici parametreler geçemez rağmen , hala bootstrapper çeşitli şekillerde bilgi toplayabilir:

örn: Ayar değişken

<Variable Name="PARAM1" Value="SomeValue" Persisted="yes" Type="string" /> 

Örnek: Kayıt defteri ara

<util:RegistrySearch Root="HKLM" Key="Software\SomeProduct" Value="SomeKey" Variable="PARAM1" Result="value"/> 
+0

Teşekkür ederiz. Bunun yapılamadığının teyidi yararlıdır. Aynı soruyu wix-kullanıcı posta listesinde yayınladım ve aynı cevabı aldım. –

32

Bu işlem şu anda uygulanmıştır ve 21 Mayıs'ta Wix 3.6 RC sürümünde kullanılabilir.

şöyle çalışır genel bir fikir:

<Wix> 
<Bundle> 
    <Variable Name="CommandLineArg" bal:Overridable="yes"/> 
    <Chain> 
     <MsiPackage> 
     <MsiProperty Name="CommandLineArg" Value="[CommandLineArg]"/> 
     </MsiPackage> 
    </Chain> 
</Bundle> 
</Wix> 

Komut satırında geçersiz kılınabilir bir paket değişkeni yapmak ve sonra msi için o değişkeni geçmek zorunda.

+0

Bu işe yaramıyor. – Isaiah4110

+0

Şimdi çalışıyor! Teşekkür ederiz [user1513304] (http://stackoverflow.com/users/1513304/user1513304). – Dimiano

+0

"Bal" ad alanı nerede çözümlendi? VS bal yazarken xmlns: bal = "" özniteliğini ekler: Overridable = "yes". – grwww