Das Wix-Setup, an dem ich arbeite, fragt den Benutzer, ob er eine Verknüpfung vom Hauptprogramm auf dem Desktop installieren soll.Muster, um ein Wix-Upgrade durchzuführen, ohne die Desktop-Icons der Benutzer zu stören
Das Problem ist, dass während des Upgrades, die Verknüpfung entfernt und dann neu erstellt:
- Wenn der Benutzer auf das Symbol bewegt, ist es wahrscheinlich woanders neu ist (neben Freiraum von oben links beginnend)
- Wenn der Benutzer das Symbol während der Erstinstallation nicht erstellt hat, erinnern Upgrades mit der Benutzeroberfläche nicht daran, dass das Kontrollkästchen zum Erstellen des Symbols standardmäßig deaktiviert ist. Bei stillen Upgrades wird das Symbol nur erstellt, obwohl der Benutzer dies explizit gewählt hat nicht dieses Symbol erstellt haben.
Gibt es einen einfachen Weg, um diese Situation richtig zu behandeln?
Im Folgenden sind Informationen auf meinem wix Setup:
Install ist pro Maschine
Der Anwender die Desktop-Verknüpfung über eine Checkbox installieren wählt, die auf einer modifizierten Version des „Ziels auswählen“ hinzugefügt wird:
<Control Id="DesktopShortcutCheckBox" Type="CheckBox" X="20" Y="160" Width="290" Height="17" Property="INSTALLDESKTOPSHORTCUT" CheckBoxValue="[INSTALLDESKTOPSHORTCUT]" Text="!(loc.InstallDirDlgCreateDesktopShortcut)" />
im UI-Tag habe ich die Eigenschaft initialisiert:
<Property Id="INSTALLDESKTOPSHORTCUT" Value="1"/>
Dies ist die Komponente ist die Verknüpfung mit der INSTALLDESKTOPSHORTCUT Bedingung zu erstellen:
<Directory Id="DesktopFolder" Name="Desktop">
<Component Id="desktopconnecteurdts" Guid="a-real-guid-here">
<Condition>INSTALLDESKTOPSHORTCUT=1</Condition>
<Shortcut Id="desktopconnecteurdts" Name="DTS eXplorer" WorkingDirectory="ApplicationFolder" Icon="DTSeXplorer.exe" Target="[ApplicationFolder]\DTSeXplorer.exe" Advertise="no" />
</Component>
</Directory>
Nach dem Start der Setup prüft, ob eine ältere Version vorhanden ist, und entfernen Sie die ältere Version, wenn gefunden:
<Upgrade Id="$(var.UpgradeCode)">
<UpgradeVersion OnlyDetect="no"
Property="PREVIOUSVERSIONSINSTALLED"
Minimum="$(var.OldProductVersion)"
IncludeMinimum="yes"
Maximum="$(var.ProductVersion)"
IncludeMaximum="no"
RemoveFeatures="all" />
<UpgradeVersion OnlyDetect="yes" Property="PROJECT_DOWNGRADE"
Minimum="$(var.ProductVersion)" IncludeMinimum="no" />
</Upgrade>
Die Produktversion Haupt ändert sich nicht, zum Beispiel ich ein Upgrade von 1.6.8.12345 zu 1.7.2.56789
Vielen Dank!
Haben Sie eine Lösung für die Verknüpfung auf dem Desktop gefunden? – Andreas
@Andreas: Für den Standort: nein, es ist bei jedem Update zurückgesetzt –