Lassen Sie uns folgendes Thema besprechen. Es gibt eine Anwendung, die derzeit mit einer gut bekannten xcopy-Methode eingesetzt wird. Dieser Ansatz macht es schwierig, Abhängigkeiten, Dateiupdates usw. zu verwalten. Es gibt eine Idee, die Anwendungsbereitstellung mit Hilfe einiger Pakete zu starten RPM , aber für Windows.
Ich habe also eine Frage: Welches Paketsystem ist besser für Windows Classic Installer ( msi ) oder nuget oder etwas anderes?
MSI ist der akzeptierte Standard für Unternehmensanwendungen. Es hat einige wichtige Vorteile für Unternehmen im Vergleich zu herkömmlichen Bereitstellungstechniken. WiX ist die neue Open-Source-Methode zum Erstellen von MSI-Dateien.
Einige gute Startlinks, um Wix zu lernen:
Wie ich in meinem oben vorgeschlagenen < Wix-Schnellstartbeitrag geschrieben habe: Wix ist praktisch . Konzentrieren Sie sich einfach auf einfache, aber vollständige reale Beispiele wie die von Codeproject - das Lesen der Dokumentation allein ist wahrscheinlich nur verwirrend .
Konzentrieren Sie sich darauf, Ihre Anwendung in Komponenten aufzuteilen und ein größeres Upgrade einzurichten. Verwenden Sie eine Datei pro Komponente als Faustregel und lesen Sie diese Antwort zum besseren Verständnis der Komponentenerstellung: Ändern Sie meine Komponenten-GUID in wix?
Ein Haupt-Upgrade ist der am häufigsten verwendete Upgrade-Mechanismus für die bereitgestellte Software (der andere häufige Aktualisierungstyp ist ein geringfügiges Upgrade). Es ist natürlich wichtig, dass Sie das, was Sie bereits bereitgestellt haben, aktualisieren können. Erhalten Sie Upgradeszenarien, bevor Sie die erste Softwareversion bereitstellen, damit Sie Ihrer Bereitstellungslösung vertrauen können.
Sobald Sie Ihre Komponenten eingerichtet haben und Ihre Upgrade-Lösung funktioniert, fügen sich die restlichen Teile in Ihre Arbeitsumgebung ein, während Sie sich durch die Bereitstellungsanforderungen Ihrer Anwendung bewegen und nach Beispielen auf der Wix-Lernersite Ссылка .
Für diejenigen, die Wix-Code direkt schreiben (ohne GUI-Editor), schlage ich vor, dass Sie diese Antwort überprüfen, um Ihre Quelldateien kurz zu halten: Syntax für GUIDs in WIX?
Lesen Sie weiter:
Ich gehe jetzt diesen Weg, wo ich Software mit MSI / WiX für das Installationsprogramm geerbt habe, aber ich versuche, unseren Prozess auf kontinuierliche Lieferung umzustellen und Updates, die ohne Client-Interaktion installiert werden, zu veröffentlichen. Ich denke, es ist inkorrekt, nugget als SDK-Tool einzuordnen, in seiner Essenz ist es ein Werkzeug, um versionierte Sätze von Dateien zu implementieren. Wenn die Software, die Sie implementieren, bereits sehr stark auf nuget reagiert und Sie Ihre Baugruppen bereits in nugget-Pakete für den internen Gebrauch verpacken, warum sollten Sie dann zusätzliche Technologie in den Mix integrieren? package up ein nuget.exe in Ihrem msi, rufe Updates regelmäßig auf, fertig.
Ich weiß, dass WiX das Erstellen von Patches unterstützt, aber es scheint, als wäre es ein nachträglicher Einfall. Was passiert außerdem, wenn der Patch nicht installiert werden kann? Patches nicht in der richtigen Reihenfolge installieren? Ihr Hauptinstallationsprogramm benötigt UAC-Berechtigungen, während Ihr Patch dies nicht tut?
Ich denke, die Zeiten ändern sich, und MSI repräsentiert eine ältere Art, über Dinge nachzudenken. Chocolatey ist ein gutes Beispiel, aber es ist immer noch eine Hybrid-Phase, die beide Technologien miteinander verbindet.
MSI ist eher wie ziehen - Sie erhalten ein Paket, dann installieren Sie es. Nuget ist mehr wie eine Push-Stratergy - Sie erhalten den Namen eines Pakets, installieren Sie es, dann können Sie regelmäßig update aufrufen, und eine neue Version wird heruntergeladen und installiert.
Tags und Links .net nuget installer windows-installer continuous-deployment