2009-08-26 15 views
2

Ich habe ein Setup & Bereitstellungsprojekt in VS2005. Eine der Dateien, die ich installiere, ist eine SQLite-Datei.Wie erteile ich MSI mit, keine vorhandene Datei in Setup & Deployment Project in VS2005 zu überschreiben?

Ich bin dabei, eine neue Version für die Software zu veröffentlichen, aber ich fand, dass, wenn ich das Update auf einer bestehenden Installation ausführe, es die Datendatei überschreibt.

Ich habe eine aktualisierte Datei im Setup-Projekt, so dass es neuer als bereits installiert ist, aber ich möchte es nicht überschreiben.

Ich habe versucht, die permanente Eigenschaft für diese Datei auf True zu setzen, aber ohne Erfolg.

Irgendwelche Vorschläge?

Antwort

1

Ok, hier ist eine Abhilfe, die ich verwendet habe:

  • In meinem Setup Projekt, das ich meine leere Datenbankdatei von database.db auf Datenbank-blank.db umbenannt haben.
  • In meiner App überprüfe ich, ob Database.db fehlt und Datenbank-leer.db zu Database.db kopiert, wenn es ist.
  • dann laden Sie einfach database.db

Auf diese Weise bestehende i die lokale Kopie der Datendatei sichern können (database.db) durch neuere Versionen der Software nicht ersetzt bekommt.

0

In MSI wäre der beste Weg, einen Datensatz in der Upgrade table zu erstellen, festzustellen, ob dies eine Upgrade-Installation ist, und eine Eigenschaft zu setzen, wenn dies der Fall ist. Dann legen Sie die Datendatei in eine component, und legen Sie eine Bedingung für die Komponente. Alternativ können Sie einen Eintrag in der AppSearch table vornehmen und auf das Vorhandensein der Datei prüfen (über die DrLocator table).

Ich weiß nicht, ob ein Setup & Deployment-Projekt dies unterstützt. Installieren Sie als Fallback die Datei unter einem anderen Namen, und erstellen Sie dann eine benutzerdefinierte Aktion, die die Datei bedingt kopiert.

0

Da VS2005 beim Upgraden eines Programms zuerst eingerichtet wurde, entfernen Sie die ursprünglich installierte Instanz und installieren dann eine neue, so dass die Datei jedes Mal entfernt wird.

Um das Ersetzen oder Überschreiben der Datei zu vermeiden, empfehle ich Folgendes: 1- Markieren Sie die Datei als schreibgeschützt im Setup-Projekt. 2- Markieren Sie die Datei im Setup-Projekt als permanent.

jetzt nach dem Upgrade der Datei wird es nicht überschrieben, aber Ihre Anwendung kann nicht mit dieser Datei umgehen, da es nur lesen, so dass im Start der Anwendung überprüfen, ob die Datendatei lesen Sie nur deaktivieren Sie es ab.

+0

Danke für Ihre Eingabe, Wael. Tatsächlich entfernt die ID die Datei nicht, wenn sie seit der Installation geändert wurde. Ich habe Ihren Vorschlag mit Permanent und ReadOnly versucht, aber es überschreibt immer noch die Datei. – Muxa

Verwandte Themen