当我的程序首次安装时,它会在用户的AppData目录中放置一个文件,然后程序会定期写入该文件。问题是在Vista中,没有对用户的AppData目录中的文件进行写入,而是将它们写入“VirtualStore / ProgramData”目录中的该文件的副本。用户的AppData目录中的原始文件永远不会被更改,似乎程序运行时它只能访问VirtualStore目录中的文件。
是否有一种方法可以从C#应用程序内部更改该文件的权限,以便我的程序将写入AppData目录中的原始程序,而不是VirtualStore目录中的原始程序?
谢谢,
杰夫
答案 0 :(得分:1)
http://msdn.microsoft.com/en-us/library/bb756973.aspx处的UAC文档可以帮助您解决此问题。
听起来我需要添加一个应用程序清单。
当您的应用程序包含指定了“requestedExecutionLevel”值的应用程序清单时,将关闭Vista对注册表和文件系统的虚拟化。
请查看http://msdn.microsoft.com/en-us/library/bb756929.aspx了解详细信息。
如果您之前未在非管理员条件下测试过您的应用程序,您可能会发现在关闭Vista的虚拟化后需要进行一些代码更改。