WPF安装后无法访问sqlite数据库

我已经创建了一个 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();

}

你能说出问题出在哪里吗?我需要将这些元素放在安装后可访问的特殊文件夹中吗?或者有另一种方法可以确保应用程序在目标机器上安装后可以正常工作吗?


森栏
浏览 176回答 1
1回答

猛跑小猪

Program Files 或 Program Files (x86) 或下面的任何文件夹中的文件通常设置为只读访问,除非您的程序以提升的方式运行。这需要将任何写访问文件或数据库放在别处。根据您放入其中的内容,ApplicationData 或 LocalApplicationData(来自 Environment.GetFolderPath)是典型的位置。
打开App,查看更多内容
随时随地看视频慕课网APP