由于Windows 7 UAC,将SDF数据库从应用程序文件夹移动到用户文件夹?

时间:2013-01-27 15:27:13

标签: wpf sql-server-ce windows-installer connection-string

我正在使用SQL Server CE 4.0作为我的WPF(MVVM)项目,在开发期间,数据库与我的应用程序位于同一文件夹中 - 所以在我的APP.CONFIG文件中,我有以下连接字符串:

<configuration>
<add name="DatabaseEntities" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlServerCe.4.0;provider connection string=&quot;Data Source=Database.sdf&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

然后我创建了一个Windows安装程序(MSI),在Windows XP中一切都很完美......

但是当我转到WINDOWS 7时,无法访问数据库(部署在安装文件夹中)(UAC)。所以看起来我需要将SDF移到其他地方......?

我认为它应该在用户... \ AppData \ Local \ Model \ Database.SDF下吗?或者是否有其他更适合此类文件的位置?

另外,我绝对不知道如何更改我的ConnectionString以指向这​​个新位置(它在APP.CONFIG文件中被编码)。

非常感谢任何建议和帮助。

谢谢,

1 个答案:

答案 0 :(得分:4)

您应阅读以下有关Windows 7计算机上recommended folders for application data的文章。

在.config文件(标准XML文件)方面,大多数专业安装创作工具都支持在安装过程中导入和更新其内容。例如,在下面的文章中,您可以了解如何import and edit at install time and XML in Advanced Installer