Bei Verwendung von InstallShield Le enthält der MSI eine veraltete Version einer Assembly, aber aktuelle Versionen anderer

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

Frage

Ich verwende Visual Studio 2010, InstallShield Le auf einer Lösung mit etwa 10 Gesamtprojekten.

Ich habe die Hauptprojektausgabe der Hauptprojekte der Haupt-GUI für den "Dateien" ausgewählt, installiert in ein Unterverzeichnis von Programmdateien, ziemlich standard.

Ich habe das Installationsprogramm vor ein paar Wochen gebaut und installierte es auf meiner Testmaschine, alles funktionierte in Ordnung. Seitdem habe ich jedes Projekt in der Lösung Änderungen vorgenommen. Heute habe ich meine Montageversion inkrementiert und mein Setup-Projekt neu aufgebaut, um das Testen fortzusetzen.

Nach der Installation, in der Installationsverzeichnisse von Programmdateien, stellte ich fest, dass eine der Baugruppen meiner Projekte immer noch die vorherige Version auflistet, 1.0.0.0, und das Datum des Dateinatals ist über einen Monat alt. Die anderen Baugruppen im Verzeichnis zeigen die aktuellen Versionen und das aktuelle modifizierte Datum.

Ich habe versucht, jeden Bin- und OBJ-Ordner in meinem Lösungsverzeichnis und dem Ordner des Installationsprojekts zu löschen. Ich habe neu installiert, aber das Problem bleibt erhalten.

Ich suchte Google, aber da das Problem ungerade ist, war ein guter Suchsatz schwer fassbar.

Natürlich brauche ich die aktuellste Version meiner Baugruppen, die in den Installer MSI aufgenommen werden sollen.

Danke für irgendwelche Hilfe oder Anregungen!

War es hilfreich?

Lösung

Sie müssen zwei Dinge ausführen: Extrahieren Sie die eigentliche Datei in der MSI, um zu wissen, ob das aktualisierte Binärdatei in der MSI ist, und erhalten Sie ein ausführliches Protokoll der installierenden Installation, nach welchem Windows-Installationsprogramm über die Komponente angezeigt wird, die die Montage enthältfraglich.BTW, Sie haben jede Montagedatei als Schlüsseldatei seiner eigenen Komponente, nicht wahr?Windows Installer prüft nur für Versionsupdates für sie Pfade.

Andere Tipps

Sie möchten lesen:

Standarddatei Versioning

Hinweis: Stellen Sie sicher, dass Sie mit der MontageFileVersion vergleichen.Es ist nicht das AssemblyVersion-Attribut, das eher das AssemblyFileVersion-Attribut ist.Ersteres wird von den GAC- und den starken Namensverträgen verwendet, während die spätere Karten der Windows Native FileVevent-Struktur aufgerufen wird.

Ich hatte das gleiche Problem mit dem VS-Setup-Projekt zuvor.Ich würde die Montageverweise in Ihrer Lösung überprüft, die das Projekt mit der alten DLL verweisen.Sie sollten einfach das Eigenschaftenfenster ansehen, um die Version zu sehen, die es referenziert.In meinem Fall würde es auf die DLL aus dem Bin-Ordner eines anderen Projekts, und nicht das Projekt selbst, verweisen.

Ich weiß, dass Sie alle Ordner Ihres bin- und obj-Ordners gelöscht haben, aber es ist wahrscheinlich einen Versuch wert.

Wenn Sie die Problemreferenz finden, entfernen Sie es einfach und fügen Sie es erneut hinzu und Sie sollten gut sein.

Dump InstallShield und mit wix .. Sie werden nie zurückblicken.

wix hat z.B.Upgradecode, um Ihnen zu helfen, die Versionsprüfungen auf Funktionen zu steuern.

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