2017-02-27 6 views
0

Es gibt ein Projekt, das SQL-DB-Datei verwendet. Alles funktioniert gut, bis ich Setup-Datei mit Visual Studio-Installer machen. Ich kenne UAC-Einschränkungen, daher habe ich den benutzerdefinierten Ordner [CommonAppDataFolder] [Manufacturer] [ProductName] erstellt. (C: \ ProgramData \ MyCompany \ MyProduct) Setup-Datei erstellt den Ordner und legt die DB-Datei dort jedoch das Programm abstürzt mit Ausnahme "versuchen, eine schreibgeschützte Datenbank zu schreiben". Das interessanteste Zeug beginnt, wenn ich dieselbe DB-Datei nehme, die ich gerade über Visual Studio Installer hinzugefügt habe, und sie in C: \ ProgramData \ MyCompany \ MyProduct ablegen. Es sollte im Wesentlichen die gleiche Datei sein, aber wenn ich es manuell hinzufüge - alles funktioniert gut. Ich glaube also, dass das Problem mit dem Visual Studio Installer besteht, es führt zu Datenbankfehlern. Können Sie mir raten, wo ich graben sollte, um das zu beheben? Vielen Dank im Voraus.SQLite-Datenbank wird erst nach dem Setup gelesen

P.S. Ich verwende Windows 7, SP1

+0

Es gibt wirklich keine SQLite DB Erlaubnis, sehr wahrscheinlich ist die DB readonly markiert, oder ist readonly auf dem Dateisystem, oder der Benutzer, der auf die DB in Fenstern zugreift, hat nicht Schreibzugriff auf den Weg der db. –

Antwort

1

Ich hatte dieses Problem auch!

Das Problem besteht nicht darin, dass die Datei als schreibgeschützt festgelegt ist, sondern dass die Berechtigungen nicht für den Zugriff auf die Datei festgelegt sind.

Was ich fand, ich brauchte die Schritte auf der folgenden Thread zu Setup eine benutzerdefinierte Aktion zu tun, war wie folgt vor: How to give Read/Write permissions to a Folder during installation using .NET

jedoch nicht Berechtigungen für die Ordner einrichten, Sie setzen sie für die SQLite-Datei auf sich selbst . Es ist ziemlich einfach, Sie setzen File.SetAccessControls anstelle von Directory.

Verwandte Themen