InstallShield LE "Eine andere Version dieses Produkts ist bereits registriert"

8

Ich stoße in VS2010 auf einen Roadblock mit InstallShield LE. Beim zweiten Ausführen der resultierenden setup.exe (mit inkrementierten Versionsnummern) erhalte ich den Fehler

  

Eine andere Version dieses Produkts ist   bereits registriert

Mit "inkrementierten Versionsnummern", meine ich, habe ich die Minor Version, Build Number und Revision in AssemblyVersion und AssemblyFileVersion meiner .exe (die DLLs sind auf "1.0. *" gesetzt) ​​auf größere Zahlen gesetzt.

%Vor%

und aktualisierte auch die Produktversion auf der Registerkarte Allgemeine Informationen des Installshield LE-Installationsprojekts von 0.10.0000 auf 0.11.0000.

Ich habe Fälle dieser Fehlermeldung in anderen SO-Postings und im Community-Support-Forum des Herstellers gefunden, fand aber keine Lösung, die auf mich zutrifft.

    
Eric J. 09.02.2011, 02:23
quelle

3 Antworten

12

Es stellt sich heraus, dass die Antwort darin besteht, auf der Registerkarte "Upgrade-Pfade" einen Eintrag zu erstellen. Wenn Sie dies tun, zeigt InstallShield LE einen Dateiauswahldialog an. Wenn Sie das alte Installationsprogramm verwenden, können Sie vermutlich nach diesem suchen, um Informationen darüber zu erhalten, von welcher Version Sie ein Upgrade durchführen möchten. In meinem Fall hatte ich den alten Installer nicht zur Hand, also drückte ich Abbrechen und der neue Eintrag für den Upgrade-Pfad wurde trotzdem erstellt. Ich habe dann die Eigenschaften dieses Eintrags angepasst, um eine minimale und maximale Version für das Upgrade anzugeben, und alles hat wie erwartet funktioniert.

BEARBEITEN

(aus @ lookatmikes Kommentar)

Sie müssen auch die Produktversion und (etwas nicht intuitiv) den Produktcode auf der Registerkarte Allgemeine Informationen ändern. Der Upgrade-Code muss gleich bleiben.

    
Eric J. 13.02.2011, 17:52
quelle
6

OK - Dieses Problem hat mich VERRÜCKT - und ich habe online keine perfekte Antwort gefunden.

Also entschied ich, dass ich fertig war.

Dies ist vielleicht nicht der "BESTE" Weg, um das Problem zu lösen - ich bin mir sicher, dass es einige MSI-basierte "richtiges Handling" gibt, aber ich konnte es nicht herausfinden (ich denke, ich bin dumm ?)

Grundsätzlich stellt mein Installer nur sicher, dass .NET installiert ist, und kopiert einige Dateien in das Programmverzeichnis, fügt einige Registrierungseinträge, Verknüpfungen usw. hinzu.

Wenn Sie eine komplexere Installationsprozedur haben - ich würde Sie ermutigen, die "richtige" Antwort an anderer Stelle zu finden. Aber für etwas einfaches wie ich habe (und ich vermute, 95% der Menschen, die mit diesem Problem zu kämpfen haben) funktioniert das ganz gut.

Zuerst - NIEMALS "Produktcode" berühren. Ich glaube, das ist die korrekte Vorgehensweise für MSIs auf der ganzen Linie ... Sie sollten den Produktcode nicht ändern. Und diese Lösung hängt auch davon ab.

Weiter - Kopieren Sie den Produktcode in Ihre Zwischenablage - wir brauchen ihn in Kürze.

Grundsätzlich teilen wir InstallShield mit, das Produkt IMMER DEINSTALLIEREN, wenn es bereits auf dem Computer vorhanden ist.

Wenn Sie oder Ihre Partner jemals die Installation SILENTLY ausführen, stellen Sie sicher, dass Sie dies an beiden Orten tun:

Geben Sie unter "Dateiname und Befehlszeile" Folgendes ein:

msiexec /uninstall {YOUR PRODUCT CODE HERE} /passive

Das ist es. Jetzt deinstalliert dein Installer immer die alte Version.

HINWEIS: DIESES SORTIERT JEDE SORTIERUNG VON "Ich führe eine neuere Version des Installers aus" CHECK.

    
Steve 18.03.2012 17:56
quelle
0

Ich verwende meine Visual Studio-Projekte oft wieder und habe dieses Problem. Als @ Eric-j sagte ich musste den Produktcode auf der Registerkarte Allgemeine Informationen des VS Install Setup-Projekts ändern:

    
rupweb 23.01.2018 15:35
quelle