C# 在WPF中安装后无法访问Sqlite数据库
我已经创建了一个WPF应用程序,并且在原始解决方案中使用了一个VisualStudio安装项目来创建安装程序。此安装程序以正确的方式创建,并在系统上安装应用程序 问题在于,在应用程序内部需要创建sqlite数据库。在应用程序进入visual studio之前,不会出现任何问题,但一旦安装到主窗口内,将引发异常: System.UnauthorizedAccessException:对路径“C:\Program Files(x86)\User\TestApp\database.sqlite”的访问被拒绝 我在应用程序中使用的代码如下:C# 在WPF中安装后无法访问Sqlite数据库,c#,wpf,sqlite,C#,Wpf,Sqlite,我已经创建了一个WPF应用程序,并且在原始解决方案中使用了一个VisualStudio安装项目来创建安装程序。此安装程序以正确的方式创建,并在系统上安装应用程序 问题在于,在应用程序内部需要创建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();
}
你能告诉我问题出在哪里吗?我需要将这些元素放在安装后可以访问的特殊文件夹中?或者有另一种方法确保应用程序在目标计算机上安装后工作?程序文件或程序文件(x86)或其下的任何文件夹中的文件通常设置为只读访问,除非您的程序在提升状态下运行。这要求任何写访问文件或数据库都位于其他位置。根据您要放入的内容,ApplicationData或LocalApplicationData(来自Environment.GetFolderPath)是典型的位置。您应该将可写文件安装到安装用户的LocalAppData文件夹中,该文件夹位于应用程序的自定义产品文件夹下。