我创建了一个WPF应用程序。我正在使用Visual Studio安装项目来创建应用程序设置。
在我的应用程序中,我有一个位于项目文件夹(Application文件夹)中的本地数据库。当我将应用程序安装到除C:驱动器(操作系统驱动器)之外的任何其他驱动器时,它工作正常。但是当我将应用程序安装到C:
驱动器时,我的应用程序无法访问数据库文件。此外,当我将数据库附加到SQL Server Management Studio时,它将以只读方式附加:
另外,我查看了Eventviewer,发现了这个错误:
我尝试将.mdf
文件添加到Programdata
文件夹,但问题仍未解决。我知道这是一个与许可相关的问题。但有没有办法使用Visual Studio安装程序来解决这个问题?
答案 0 :(得分:1)
使用Installer类并在Commit方法中写下以下代码。 您必须为mdf文件授予读/写权限。 你可以通过下面的代码行给出这个;确保您的安装目录也具有写入权限。
string directoryName = @"C:\rnd\ConsoleApplication16\ConsoleApplication16\";
string SharedCachePath = @"C:\rnd\ConsoleApplication16\ConsoleApplication16\xyz.mdf";
var fs = File.GetAccessControl(directoryName);
fs.SetAccessRuleProtection(false, true);
File.SetAccessControl(SharedCachePath, fs);
您可以查看here以了解安装程序类的使用情况 希望这将有效并解决您的问题。