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

时间:2009-05-03 14:04:19

标签: windows-vista virtualization uac

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

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

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

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

我缺少什么?

我需要在ProgramData ??

下设置MyApp文件夹的权限

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

谢谢大家......

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

我在这里遇到了麻烦,似乎vista曾经决定虚拟化文件,阻止它的唯一方法就是删除虚拟文件。 下次使用时,它将使用ProgramData文件夹。

相关问题