使用Visual Studio安装项目安装应用程序后无法访问.mdf文件

时间:2018-05-27 08:36:19

标签: wpf installation setup-project

我创建了一个WPF应用程序。我正在使用Visual Studio安装项目来创建应用程序设置。

在我的应用程序中,我有一个位于项目文件夹(Application文件夹)中的本地数据库。当我将应用程序安装到除C:驱动器(操作系统驱动器)之外的任何其他驱动器时,它工作正常。但是当我将应用程序安装到C:驱动器时,我的应用程序无法访问数据库文件。此外,当我将数据库附加到SQL Server Management Studio时,它将以只读方式附加:

enter image description here

另外,我查看了Eventviewer,发现了这个错误:

enter image description here

我尝试将.mdf文件添加到Programdata文件夹,但问题仍未解决。我知道这是一个与许可相关的问题。但有没有办法使用Visual Studio安装程序来解决这个问题?

1 个答案:

答案 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以了解安装程序类的使用情况 希望这将有效并解决您的问题。