2016-04-14 12 views
2

Ich habe eine Wix-Installer und hat eine Radio-Button Gruppe meiner Target-Auswahl-Dialog:WiX - Spielanlage nicht funktioniert

<Property Id="INSTALLATION_TYPE" Secure="yes" Value="Server"/> 
    <RadioButtonGroup Property="INSTALLATION_TYPE"> 
    <RadioButton Height="17" Text="Client" Value="Client" Width="342" X="0" Y="0" /> 
    <RadioButton Height="17" Text="Server" Value="Server" Width="342" X="0" Y="18" /> 
    </RadioButtonGroup> 

Wenn zwischen Server und Client Umschalten folgende Ausgabe zu gedruckt wird das MSI-Logfile:

MSI (c) (04:B4) [17:17:56:295]: PROPERTY CHANGE: Modifying INSTALLATION_TYPE property. Its current value is 'Server'. Its new value: 'Client'. 

My-Feature-Tabellensperren wie folgt:

<PropertyRef Id="INSTALLATION_TYPE"/> 
    <Feature Id="CommonFeature" Level="1" Title="Common Feature"> 
    <ComponentGroupRef Id="Common"/> 
    <ComponentGroupRef Id="RegistryKeys"/> 

    <Feature Id="FeatureServer" Title="Server" Level="2"> 
     <Condition Level="1"><![CDATA[INSTALLATION_TYPE="Server"]]></Condition> 
     <ComponentGroupRef Id="Server"/> 
     <ComponentGroupRef Id="AdminConsole"/> 
    </Feature> 

    <Feature Id="FeatureClient" Title="Client" Level="2"> 
     <Condition Level="1"><![CDATA[INSTALLATION_TYPE="Client"]]></Condition> 
     <ComponentGroupRef Id="Client"/> 
    </Feature> 
    </Feature> 

Aber Eigenschaft Kunde und Server werden niemals installiert, wenn RadioButton "Client" ausgewählt wird. Feature Server ist immer installiert. Logfile sagt folgendes:

MSI (s) (DC:5C) [17:18:35:750]: Feature: FeatureServer; Installed: Absent; Request: Null; Action: Null 
MSI (s) (DC:5C) [17:18:35:753]: Feature: FeatureClient; Installed: Absent; Request: Null; Action: Null 
MSI (s) (DC:5C) [17:18:35:755]: Feature: CommonFeature; Installed: Absent; Request: Local; Action: Local 

Was mache ich falsch?

Antwort

0

Versuchen Sie, den INSTALLATION_TYP in dem < Produkt Ihres Installers zu definieren.

Ich denke, was passiert ist, dass Sie die Eigenschaft INSTALLATION_TYPE auf der Clientseite (UI) der Installation nur definieren, obwohl es als sicher markiert ist.

In den kleinen Schnipsel des Stammes können wir

MSI (c)

Dies zeigt diesen Teil der Protokollierung geschieht während des UI-Teil der Installation sehen. Ange

MSI (s)

darauf hinweisen, dass die Protokollierung während des Server (erhöhte) Teil der Installation geschieht.

Am Ende Ihrer Installationsdatei haben Sie wahrscheinlich eine Reihe von Linien, die wie diese

Eigenschaft (S)

Alle Eigenschaften mit (S) sind, was der erhöhte Abschnitt beginnen der Installation hat Zugriff auf. Ich wette, dass INSTALLATION_TYPE nicht in den (S) -Eigenschaften aufgeführt ist und dass Sie es nur technisch für den UI-Teil (Client) der Installation definiert haben. Dies würde erklären, warum keine Ihrer Client- oder Serverfunktionen installiert werden.

Auch bei Verwendung von bedingt installierten Funktionen, die standardmäßig nicht installiert werden, müssen Sie "ODER installiert" zu der Bedingung hinzufügen, in der sie aktiviert werden.

Als ich einige Installer erstellte, hatte ich Funktionen, die standardmäßig deaktiviert waren und wenn ich sie installierte, gab es Probleme während der Deinstallation oder Upgrades (ich kann mich nicht erinnern), was dazu führte, dass das Installationsprogramm nicht vollständig vollständig deinstalliert werden konnte . Dies hatte Maschinen in seltsamen Zuständen, in denen der Installer nicht funktionieren würde. Durch das Hinzufügen der Bedingung "ODER installiert" zu der Featureaktivierungsbedingung wurde dieses Problem für mich behoben.

Verwandte Themen