【发布时间】:2019-04-26 16:34:57
【问题描述】:
我创建了一个 WPF 应用程序,并在原始解决方案中使用了一个 Visual Studio 设置项目来创建一个安装程序。此安装程序以正确的方式创建并在系统上安装应用程序。
问题是在应用程序内部需要创建一个 sqlite 数据库。在应用程序在 Visual Studio 中之前没有问题,但是一旦安装在主窗口中就会引发异常:
System.UnauthorizedAccessException:访问路径“C:\Program Files (x86)\User\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();
}
你能说出问题出在哪里吗?我需要将这些元素放在安装后可访问的特殊文件夹中吗?或者还有其他方法可以确保应用在目标机器上安装后正常运行?
【问题讨论】:
-
您应该将可写文件安装到安装用户的 LocalAppData 文件夹中,在您的应用程序的自定义产品文件夹下。