Ich habe ein MSI-Installationspaket für mein Projekt aus dem VS2008-Bereitstellungsprojekt erstellt. aber ich habe Probleme, wenn es um das Aktualisieren von Installationen geht. Die zuvor installierte Version wird nicht überschrieben. Wie stelle ich sicher, dass zuvor installierte Versionen überschrieben werden?
Wenn Sie dieses neue Setup erstellt und bereitgestellt haben, wird ein Setup mit einer älteren Versionsnummer gelöscht.
Wichtig: Die Installationsversionsnummer ist völlig unabhängig von der Versionsnummer Ihrer Anwendung oder Baugruppe!
(Olivers Antwort ist korrekt, aber ich wollte Bilder und einige weitere Details hinzufügen)
Wählen Sie das Setup-Projekt in Ihrer Lösung aus, und öffnen Sie dann den Bereich Eigenschaften (die Registerkarte neben Toolbox):
DetectNewerInstalledVersion
wahr ist (es ist der Standardwert) InstallAllUsers
auf wahr RemovePreviousVersions
auf wahr Version
-Nummer und drücken Sie die Eingabetaste ProductCode
generieren möchten, indem Sie auf Ja Zusätzlich müssen Sie die Versionsnummern für jedes Projekt in Ihrer Lösung aktualisieren, da das Installationsprogramm nur DLLs für ihre Version ersetzt Anzahl wurde erhöht:
AssemblyVersion
- und AssemblyFileVersion
-Zahlen Oder ein besserer Weg:
AssemblyVersion
und AssemblyFileVersion
-Zeilen von jedem Projekt AssemblyInfo.cs
Klicken Sie mit der rechten Maustaste auf das Setup-Projekt und wählen Sie Eigenschaften (ein anderer Eigenschaften -Dialog):
Ich bin nicht sicher, ob alle diese Schritte notwendig sind, und es gibt andere Möglichkeiten, dies einzurichten, aber die obigen Schritte funktionieren für mich.
Windows Installer hat Prüfungen für Ihre Dateien eingebaut, um sicherzustellen, dass die Version höher ist als die vorherige Version dieser Datei. Wenn nicht, wird Windows Installer es nicht überschreiben. Ausführlichere Informationen dazu, wie Windows Installer die Versionierung behandelt, finden Sie in diesem MSDN-Artikel:
Wir müssen REINSTALLMODE-Eigenschaft unserer msi-Datei auf amus setzen.
Nachfolgend finden Sie den Link, um mehr über die Bedeutung von "amus" zu erfahren. Ссылка
Dafür gibt es zwei Möglichkeiten.
Sobald Sie msiexec.exe finden, geben Sie einfach folgenden Befehl ein, um die REINSTALLMODE-Eigenschaft für Ihr Installationsprogramm auf amus zu setzen.
msiexec.exe / i foo.msi REINSTALLMODE = amus
Tags und Links c# winforms deployment