264 Stimmen

WiX Tricks und Tipps

Wir verwenden schon seit einiger Zeit WiX und trotz der üblichen Schwierigkeiten bei der Benutzerfreundlichkeit läuft es recht gut. Was ich suche, sind nützliche Ratschläge zu folgenden Themen:

  • Einrichten eines WiX-Projekts (Layout, Verweise, Dateimuster)
  • WiX in Lösungen und Build-/Release-Prozesse integrieren
  • Installationsprogramme für neue Installationen und Upgrades konfigurieren
  • Irgendwelche nützlichen WiX-Tricks, die Sie teilen möchten

0 Stimmen

Blicken Sie sich gui4wix.codeplex.com an

10 Stimmen

Als nicht konstruktiv geschlossen? Ich habe eine Menge gelernt, indem ich diese Frage gestellt habe! Ein wenig Konsistenz von StackOverflow wäre auch schön...z.B. stackoverflow.com/questions/550632/…

15 Stimmen

Es bekam '203' Likes, das reicht aus, um seine Nützlichkeit zu beweisen.

3voto

Dave Andersen Punkte 5248

Setzen Sie die Eigenschaft DISABLEADVTSHORTCUTS auf 1, um alle beworbenen Verknüpfungen in Ihrem Installer zu regulären Verknüpfungen zu zwingen, ohne dass ein Dummy-Registrierungsschlüssel als KeyPath benötigt wird.

Ich denke, Windows Installer 4.0 oder höher ist ein Anforderung.

2voto

Terrance Punkte 11609

Führen Sie eine erzwungene Neuinstallation durch, wenn eine Installation keine Deinstallation oder Neuinstallation zulässt und nicht zurückgesetzt wird.

VBscript-Skript zum Überschreiben einer Installation, die aus irgendeinem Grund nicht deinstalliert wird.

Dim objShell
set objShell = wscript.createObject("wscript.shell")

iReturn = objShell.Run("CMD /K MsiExec.exe /I ""C:\Users\TheUser\Documents\Visual Studio 2010\Projects\InstallationTarget\HelloInstaller\bin\Debug\HelloInstaller.msi"" REINSTALLMODE=vomus REINSTALL=ALL",,True)

2voto

Es ist eine schöne Struktur, aber basierend auf meiner Erfahrung frage ich mich, wie Sie diese Bedingungen angehen:

A. Ihre Installationen scheinen alle am selben Ziel anzukommen. Wenn ein Benutzer alle 3 Versionen gleichzeitig installieren muss, ermöglicht Ihr Prozess dies? Können sie eindeutig erkennen, welche Version von jeder ausführbaren Datei sie ausführen?

B. Wie gehen Sie mit neuen Dateien um, die in TEST und/oder TRAINING existieren, aber noch nicht in LIVE?

0 Stimmen

Hallo Blaine, A. Nein, das tun sie nicht. InstallName befindet sich in Config.wxi, das die einzige Datei ist, die nicht von svn:externals referenziert wird. Daher ist dies einzigartig für jede Installation, d.h. für jedes Produkt. Deshalb ändern wir auch die Guids für jede Version. B. Gehe zu A. :) Es handelt sich um separate MSI's mit ihrem eigenen UpgradeCode.

1 Stimmen

Übrigens, ich verstehe, warum du meine Frage mit einer Gegenfrage beantwortet hast, aber sobald du genügend Reputation bekommst, bitte verschiebe deine Frage in die Antwortkommentare, ansonsten wird es schwer sein, dem Thread zu folgen.

2voto

Daniel Powell Punkte 7972

Erstellen Sie eine Benutzeroberfläche, die eine benutzerdefinierte Aktion hat, die eine Variable festlegt und die Benutzeroberfläche deaktiviert/aktiviert die Schaltfläche "Weiter" (oder ähnlich) basierend auf der in der benutzerdefinierten Aktion festgelegten Variable.

Nicht so einfach, wie man denkt, nicht zu schwierig, einfach nirgends dokumentiert!

Wix-Interaktionen mit Bedingungen, Eigenschaften & benutzerdefinierten Aktionen

2voto

si618 Punkte 16160

Hier ist eine Möglichkeit, um großen Web-Projekten zu helfen, zu überprüfen, ob die Anzahl der bereitgestellten Dateien mit der Anzahl der in ein MSI (oder Merge-Modul) eingebauten Dateien übereinstimmt. Ich habe gerade den benutzerdefinierten MSBuild-Task gegen unsere Hauptanwendung (die sich noch in der Entwicklung befindet) ausgeführt und er hat ziemlich viele fehlende Dateien erkannt, hauptsächlich Bilder, aber auch ein paar JavaScript-Dateien sind durchgefallen!

Dieser Ansatz (Einblick in die Dateitabelle des MSI, indem man sich in das AfterBuild-Ziel des WiX-Projekts einklinkt) könnte auch für andere Anwendungstypen funktionieren, bei denen Sie Zugang zu einer vollständigen Liste der erwarteten Dateien haben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X