Wie stelle ich sicher, dass meine Winform-Anwendungsbereitstellung alte Versionen überschreibt?

7

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?

    
fishhead 08.02.2010, 13:12
quelle

4 Antworten

11
  1. Wählen Sie in Visual Studio Ihr Setup-Projekt im Projektmappen-Explorer
  2. aus
  3. Öffnen Sie das Eigenschaftenfenster
    • Klicken Sie nicht mit der rechten Maustaste und wählen Sie Eigenschaften.
    • Wählen Sie Ansicht - Eigenschaftenfenster
  4. setze RemovePreviousVersions auf true
  5. erhöht die Version auf eine höhere Zahl
  6. Wählen Sie Ja im nächsten Meldungsfeld

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!

    
Oliver 08.02.2010, 15:31
quelle
10

(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):

  • Stellen Sie sicher, dass DetectNewerInstalledVersion wahr ist (es ist der Standardwert)
  • Setzen Sie InstallAllUsers auf wahr
  • Setzen Sie RemovePreviousVersions auf wahr
  • Aktualisieren Sie die Version -Nummer und drücken Sie die Eingabetaste
  • Nachdem Sie die Eingabetaste gedrückt haben, fragt Visual Studio, ob Sie eine neue GUID für ProductCode generieren möchten, indem Sie auf Ja
  • klicken

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:

  • Öffnen Sie die AssemblyInfo.cs jedes Projekts und aktualisieren Sie die AssemblyVersion - und AssemblyFileVersion -Zahlen

Oder ein besserer Weg:

  • Entfernen Sie AssemblyVersion und AssemblyFileVersion -Zeilen von jedem Projekt AssemblyInfo.cs
  • Verknüpfen Sie eine VersionInfo.cs Datei in Ihrer Lösung mit diesen zwei Zeilen
  • Schritt-für-Schritt für das oben genannte: The Richtig, um Ihre Assemblys zu versionieren

Klicken Sie mit der rechten Maustaste auf das Setup-Projekt und wählen Sie Eigenschaften (ein anderer Eigenschaften -Dialog):

  • Legen Sie Windows Installer 4.5 als Voraussetzung anstelle des Visual Studio-Standardwerts Windows Installer 3.1 fest

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.

    
JohnB 23.10.2013 17:25
quelle
0

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:

Ссылка

    
Steve Danner 08.02.2010 13:43
quelle
0

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.

  1. Durch die Verwendung von msiexec.exe, das mit dem .NET SDK geliefert wird (wenn Sie VS 2005 oder VS 2008 mitbringen, suchen Sie einfach in der Eingabeaufforderung von Visual Studio und Sie werden es dort finden)

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

    
Jinal Desai - LIVE 19.02.2010 07:22
quelle

Tags und Links