为什么在MS Vista中的ProgramData文件夹上进行虚拟化?

Rom*_*ias 7 virtualization uac windows-vista

我修改了一个应用程序以考虑VISTA中的UAC.所以,现在,.mdb(JET或Access文件)位于ProgramData\MyApp\

我意识到,当我的应用程序第一次读取数据库时,它正在从该位置执行...但是当我的应用程序正在写入数据库时​​...文件已虚拟化并转到Users\MyUser\AppData\Local\VirtualStore\ProgramData\MyApp.从我的应用程序的这一刻起,总是转到磁盘中的虚拟化位置.

我的应用程序正在运行,但如果我继续这种方式,数据库将基于每个用户,我们真的需要与PC中的所有用户共享数据库.

我认为在ProgramData文件夹下写入不会触发虚拟化机制.

我错过了什么?

我需要在ProgramData下设置MyApp文件夹的权限吗?

如何在安装时间执行此操作?

谢谢大家......

更多信息: 使用VS Setup Project使用VS2003 VB.NET开发.

sas*_*ont 2

您很可能需要在安装过程中为所有用户设置写入权限。

要进行测试,请删除虚拟化文件夹,手动设置 ProgramData\MyApp 文件夹和文件的权限,然后查看是否有效。

至于如何在安装过程中务实地做到这一点,这实际上取决于您使用的技术。