Das MSI-Installationsprogramm schlägt fehl, ohne dass eine vorherige Installation entfernt wird

StackOverflow https://stackoverflow.com/questions/40603

  •  09-06-2019
  •  | 
  •  

Frage

Ich habe ein MSI erstellt, das ich bereitstellen und regelmäßig aktualisieren möchte.Wenn Sie die MSI installieren und dann versuchen, eine neuere Version derselben MSI zu installieren, schlägt dies leider mit der Meldung „Eine andere Version dieses Produkts ist bereits installiert“ fehl.Die Installation dieser Version kann nicht fortgesetzt werden ...“ wird angezeigt.Das MSI wurde mit einem Visual Studio 2008-Setup-Projekt erstellt.Ich habe versucht, die Eigenschaft „Vorherige Versionen entfernen“ auf „true“ und „false“ zu setzen, um zu erreichen, dass neuere Versionen die ältere Installation überschreiben, aber nichts hat funktioniert.Ich weiß, dass ich bei einem früheren Unternehmen dieses Problem mit Installationsprogrammen, die von Wise und Advanced Installer erstellt wurden, nicht hatte.Gibt es eine Einstellung, die mir fehlt?Oder wird meine gewünschte Funktionalität vom VS 2008-Setup-Projekt nicht unterstützt?

War es hilfreich?

Lösung

Ich habe mit VS 2005 Pro zahlreiche MSIs erstellt, die dies korrekt ausführen.

Sind Sie sicher, dass die Eigenschaft „Version“ des Bereitstellungsprojekt wurde erhöht?Diese Eigenschaft ist unabhängig von der Version der Assemblys in der Anwendung. Dies ist die Fehlermeldung, die angezeigt wird, wenn die Versionseigenschaft des MSI mit der Versionseigenschaft der MSI übereinstimmt, die Sie überschreiben möchten.

Andere Tipps

Erhöhen Sie die Versionsnummer Ihres Projekts.

Wählen Sie in VS den Knoten für Ihre Setup-App aus und drücken Sie F4, um die Eigenschaften anzuzeigen.Suchen Sie das Versionsfeld und erhöhen Sie es.

Sie müssen den ProductCode zwischen den einzelnen Versionen ändern. Wenn Sie dies nicht tun, erhalten Sie das angezeigte Verhalten.Der ProductCode wird in den Projekteigenschaften angezeigt.Besuche die MSDN-Onlinehilfe für ProductCode besser zu verstehen.

Das ist etwas komplexer:

Um frühere Versionen der installierten Anwendung im Setup-Projekt automatisch zu entfernen, ist Folgendes erforderlich:

  1. Erhöhen Sie die Ausführung Eigentum (z.B.von 1.0.0 bis 1.0.1 ...auch Änderung an der 3. Position funktioniert)
    • Ausführung ist die Eigenschaft des Installationsprojekts, die angibt, welche Version der Anwendung installiert wird
  2. Ändere das Produktcode Eigenschaft, sodass das Installationsprogramm weiß, dass es sich nicht um dasselbe Installationsprogramm handelt, das zweimal ausgeführt wird
    • Produktcode Eigentum des Installationsprojekts ist, bietet Visual Studio an, es automatisch zu ändern, wenn Ausführung Eigentum wird geändert
  3. Behalten Sie den Wert der Eigenschaft „UpgradeCode“ bei.
    • UpgradeCode ist auch Eigentum des Installer-Projekts
    • Es muss in der gesamten „Upgrade-Reihe“ gleich bleiben, damit der Installateur weiß, was aktualisiert werden muss
  4. Wenn Sie auch alte Anwendungsversionen aus der Softwareliste der Systemsteuerung entfernen möchten, legen Sie fest Entfernen Sie vorherige Versionen zu wahr

Hatte das gleiche Problem beim Wechsel von XP auf Win7.Um es zu lösen, musste ich DetectNewerInstalledVersion auf False setzen.Außerdem müssen Sie, wie von anderen erwähnt, die Version des Setup-Projekts einbinden.

Viel Glück.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top