2009-07-30 11 views
4

Ich verwende InstallShield 2010 Express, um eine .NET WinForms-App zu installieren. Das neueste InstallShield-Projekt ist ein wichtiges Upgrade. Daher habe ich den Abschnitt Upgrade-Pfade verwendet, um Upgrades von früheren Versionen meiner App zuzulassen.Verhindern, dass die .NET-Konfigurationsdatei während der Installation überschrieben wird

Das Problem ist, dass Konfigurationseinstellungen, die während der Erstinstallation vorgenommen wurden (geschrieben in Programme \ MyCompany \ MyApp \ myapp.exe.config), beim Installieren des neuesten Upgrades überschrieben werden. Dies bedeutet, dass der Benutzer alle Konfigurationseinstellungen erneut vornehmen muss - nicht gut.

Im InstallShield-Projekt ist myapp.exe.config auf Windows Installer Versioning Rules eingestellt. Ich habe sogar versucht, das create/mod date von myapp.exe.config sehr alt (1/1/1999) zu setzen, so dass es die Datei auf dem Zielsystem nicht überschreiben sollte.

Ansonsten funktioniert der Installer gut. Wie kann ich verhindern, dass diese Datei überschrieben wird?

Antwort

0

Installshild hat nicht einen Skriptabschnitt "before_install"? Sie können die vorhandene Konfigurationsdatei kopieren und nach Abschluss der Installation die neue Datei überschreiben.

+0

Ja, das wäre möglich, aber ich hatte gehofft, dass Windows Installer das selbst behandeln würde. In der Dokumentation heißt es: "Datum - Wenn das Änderungsdatum einer Datei, die bereits auf dem Zielcomputer vorhanden ist, älter ist als das Erstellungsdatum dieser Datei, wird die Datei nicht überschrieben. Diese Regel schützt die Benutzervorgaben vor dem Löschen während eines Upgrades oder einer Neuinstallation. " –

+0

Nicht wirklich sicher. :(Ich habe ein paar Macken in meiner begrenzten Erfahrung mit Installshield. Vielleicht ist das das? –

1

gesetzten Zustand bei isxmlinstall in Folge mit "nicht ordnungsgemäß installiert und keine Patch" isxmlinstall ist Funktion für das Upgrade xml kann nicht gestartet werden beim Upgrade.

+1

Könnten Sie bitte diese Antwort umschreiben? Es ist sehr unklar, was Sie ohne Interpunktion zu sagen versuchen. –

1

Überprüfen Sie die Attribute der .config-Datei im Installationsprogramm, wenn ihr als Schlüssel Element markiert und der Benutzer hat es geändert, da es das System installiert wurde, wird die MSI verwenden, sie zu ersetzen glauben, dass es beschädigt werden und reparaturbedürftig.

+0

MSI vergleicht die erstellen und zuletzt geänderte Daten, um zu bestimmen, ob eine nicht versionierte Datei überschrieben werden sollte.In Abhängigkeit davon, was InstallShield während der Installation mit der XML-Datei tut, könnte hier ein großes Problem auftreten - effektiv wird die Datei nicht überschrieben, wenn sie nach dem Verlegen bearbeitet wird Nieder. –

Verwandte Themen