База данных Sqlite недоступна после установки в WPF - PullRequest
0 голосов
/ 26 апреля 2019

Я создал приложение WPF и использовал проект установки Visual Studio внутри исходного решения для создания установщика.Этот установщик создан правильно и устанавливает приложение в системе.

Проблема заключается в том, что внутри приложения необходимо создать базу данных sqlite.Пока приложение не находится в Visual Studio, никаких проблем не возникает, но после установки внутри главного окна возникает исключение:

System.UnauthorizedAccessException: Доступ к пути 'C: \ Program Files (x86) \Пользователь \ TestApp \ database.sqlite 'запрещен

Код, который я использую в приложении, выглядит следующим образом:

if (!File.Exists("database.sqlite"))
{
    SQLiteConnection.CreateFile("database.sqlite");
    SQLiteConnection sQLiteConnection = new SQLiteConnection("Data Source=database.sqlite;Version=3;");
    sQliteConnection.setPassword("1234");
    sQliteConnection.Open();
}

Можете ли вы сказать, в чем проблема?Мне нужно поместить эти элементы в специальную папку, которая доступна после установки?Или есть другой способ убедиться, что приложение работает после установки на целевой компьютер?

1 Ответ

1 голос
/ 26 апреля 2019

Файлы в Program Files или Program Files (x86) или в любой папке под ними обычно устанавливаются только для чтения, если ваша программа не запущена с повышенными правами.Это требует, чтобы любые файлы или базы данных с доступом для записи были расположены в другом месте.В зависимости от того, что вы помещаете в него, типичные расположения - ApplicationData или LocalApplicationData (из Environment.GetFolderPath).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...