Syntax für GUIDs in WIX?

Wie lautet die richtige Syntax für die Angabe von Guids für Komponenten in der wxs-Datei für WIX?

In den meisten Proben fand ich

Guid="00AD2D6E-BF8A-4EA8-BE9A-57380DECD0E6" 

aber in einigen Proben fand ich

 Guid="{00AD2D6E-BF8A-4EA8-BE9A-57380DECD0E6}" 

Ich würde die zweite Version bevorzugen, da diese direkt vom GuidGen-Tool generiert wird. Aber ist es richtig?

Der WiX-Compiler konvertiert jedes Formular in die Form, die Windows Installer erwartet (mit geschweiften Klammern und Großbuchstaben) .

Auto-Guides und Standard-Attributwerte

Zusätzlich zu Bob Arnsons Ratschlag:

  • Neuere Wix-Versionen ermöglichen die automatische Generierung von GUIDs für mehrere Dinge, vor allem für die Komponenten-GUIDs. Es umfasst auch Paket-, Produkt- und Patch-Codes.
  • Außerdem können einige oder sogar die meisten Attributwerte aus der expliziten Definition übersprungen werden, da die meisten von ihnen auf vorhersagbare Werte zurückgesetzt werden können. Ein Beispiel finden Sie im folgenden Codefragment.
  • Die automatische Generierung von Komponenten-GUIDs ist möglich, da Komponenten-GUIDs nach der Erstellung erhalten bleiben sollten, sofern der Installationspfad nicht geändert wird. Dies wird in diesem Stack-Overflow-Post beschrieben . Dementsprechend berechnet Wix eine GUID basierend auf dem Zielpfad und anderen Faktoren.
  • Produkt- , Paket- und Patch-Code können in der Regel zufällig erstellt werden, da sie einfach eindeutig sein sollen.
  • Beachten Sie, dass ein Upgrade-Code speziell ist – er sollte nicht automatisch generiert werden . Generell ist es wünschenswert, in einigen Fällen zwischen den Versionen und sogar zwischen verschiedenen Editionen und Sprachen der Software stabil zu bleiben – dies hängt vom Anwendungsdesign und der Implementierung der Editionen ab (Sie können verschiedene Upgrade-Codes verwenden und trotzdem ein größeres Upgrade, aber das Upgrade implementieren) Tisch wird kompliziert).
  • Als Faustregel gilt, dass der Upgrade-Code eine ” Familie verwandter Produkte ” identifiziert, der Produktcode eine installierte Version einer Art und der Paketcode eine eindeutige Datei identifiziert. Zwei Dateien mit demselben Paketcode werden per Definition als dieselbe Datei behandelt (dies kann zu mysteriösen Fehlern führen – stellen Sie sicher, dass der Paketcode immer automatisch generiert wird).
  • Details zu den automatisch generierten GUIDs finden Sie in der Wix-Dokumentation .

Vereinfachte Wix-XML-Quelldateien

Bei richtiger Verwendung können diese automatisch generierten GUIDs Ihre Wix-Quelldateien erheblich vereinfachen:

     

gegen

    

Zusammen ergeben die Kombination aus Autoguides und den Standardattributwerten Wix-XML-Quelldateien, die kürzer und einfacher zu lesen sind, da eine Menge “Rauschen” entfernt wurde – dies macht sie wahrscheinlich weniger errorsanfällig :

  • terser-Quelldateien sind einfacher zu pflegen und weniger errorsanfällig, da einfacher zu erkennen ist, welche Änderungen sich mit Diff-Tools ergeben und je weniger Text vorhanden ist, desto weniger Fehler können sich verstecken
  • In gleicher Weise kann das Kopieren und Einfügen vorhandener XML-Elemente dazu führen, dass aufgrund unvollständiger Aktualisierung aller Attribute Fehler schwer zu finden sind. Weniger Attribute, weniger Fehler. Ich kopiere und füge viel ein, wenn ich Wix “manuell” verwende (ohne XML-Generatoren). Beachten Sie, dass die meisten Fehler vom Wix-Compiler und -Linker übernommen werden, Fehler jedoch weiterhin verborgen bleiben können.
  • Alle Änderungen an den Standardwerten können dann automatisch vom Compiler und vom Linker übernommen werden, wodurch sie leichter überall in MSI-Dateien verbreitet werden, die mit Wix erstellt wurden. Es ist immer gut, Ihre Quelldateien so einfach wie möglich zu halten, aber nicht einfacher
  • Überschriebene Standardwerte heben sich auch in der Quelldatei hervor, und Sie können Kommentare hinzufügen, um zu erklären, warum der nicht standardmäßige Wert benötigt wird

Andere Wix Tipps hier , obwohl der Artikel ein bisschen veraltet sein kann.

Ich habe beide benutzt und beide scheinen perfekt zu funktionieren.