So wählen Sie Eigenschaften über die Befehlszeile
-
05-07-2019 - |
Frage
Dies könnte eine naive Frage sein. Ich muß manuell eine .WXS-Datei bearbeiten, um es auszuwählen Funktionen von der Kommandozeile zu machen unterstützen.
Zum Beispiel gibt es 3 Funktionen in .WXS Datei.
<Feature Id="AllFeature" Level='1'>
<Feature Id="Feature1" Level='1'> </Feature>
<Feature Id="Feature2" Level='1'> </Feature>
<Feature Id="Feature3" Level='1'> </Feature>
</Feature>
Jetzt will ich Funktionen von der Kommandozeile aus. Sprich, wenn ich schreibe "msiexec / i Install.msi FEATURE = A", dann "Feature1" und "Feature2" installiert ist; wenn ich schreibe "msiexec / i Install.msi FEATURE = B", dann "Feature1" und "Feature3" installiert ist. In diesem Fall „A“ Karten 1 und 2 zu zeichnen; "B" Karten zeichnen 1 und 3.
Wie dies in WIX erreichen?
Lösung
würde ich Feature1, Feature2 und Feature3 zu Komponenten ändern, dann so etwas wie dies erklären würde:
<Feature Id="FEATUREA" Title="Super" Level="1" >
<ComponentRef Id="Component1" />
<ComponentRef Id="Component2" />
</Feature>
<Feature Id="FEATUREB" Title="Super1" Level="1" >
<ComponentRef Id="Component1" />
<ComponentRef Id="Component3"/>
</Feature>
Dann installieren Sie entweder FeatureA oder FeatureB
msiexec /i install.msi ADDLOCAL=[FEATUREA | FEATUREB]
Andere Tipps
Die akzeptierte Antwort bereits erwähnt die ADDLOCAL Eigenschaft, aber scheint zu implizieren, dass Sie nur eine Funktion auswählen können. Sie können tatsächlich mehrere Funktionen auswählen, indem sie durch Kommas wie folgt seperating:
msiexec /i install.msi ADDLOCAL=Feature1,Feature2
oder
msiexec /i install.msi ADDLOCAL=Feature2,Feature3
Ein weiterer Hinweis: Sie können diese Feature-Namen entdecken, indem Sie die msi Öffnen mit orca . Dies ist sehr nützlich, wenn Sie diese Tricks verwenden mögen ein Bootstrap-Programm zu erstellen, die bestimmten Funktionen von Drittanbietern msi Pakete installiert.
Es gibt eine Reihe von Eigenschaften, die die Installationszustände von Funktionen steuern können. Sehen Sie sich diese MSI-SDK-Dokumentation und die Links von ihm: http: //msdn.microsoft.com/en-us/library/aa367536(VS.85).aspx