Я создал приложение WPF и использовал проект установки Visual Studio внутри исходного решения для создания установщика. Этот установщик создан правильно и устанавливает приложение в систему.
Проблема в том, что внутри приложения необходимо создать базу данных sqlite. Пока приложение не находится внутри Visual Studio, проблем нет, но после установки в главном окне возникает исключение:
System.UnauthorizedAccessException: Access to path 'C:\Program Files (x86)\User\TestApp\database.sqlite' denied
Код, который я использую внутри приложения, следующий:
if (!File.Exists("database.sqlite"))
{
SQLiteConnection.CreateFile("database.sqlite");
SQLiteConnection sQLiteConnection = new SQLiteConnection("Data Source=database.sqlite;Version=3;");
sQliteConnection.setPassword("1234");
sQliteConnection.Open();
}
Можете ли вы сказать, где проблема? Мне нужно поместить эти элементы в специальную папку, доступную после установки? Или есть другой способ убедиться, что приложение работает после установки на целевой машине?





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