WiX:在ProgramFilesFolder中安装应用程序会抛出AccessDenied异常。为什么?

时间:2011-10-05 13:21:10

标签: windows visual-studio-2010 dll wix

我有一个C#应用程序和一个WiX项目,可以在 ProgramFilesFolder 中安装此应用程序。我的应用程序有一个使用dll文件的viewer元素。如果我以正常的用户权限启动应用程序,我收到一个错误,我的应用程序中的查看器元素没有加载错误消息,我的查看器元素无法访问该DLL文件。作为管理员用户,它工作正常。在我的WiX项目中,我设置属性perMachine,我在我的应用程序中使用了几个其他的dll文件,我没有得到这样的错误。

如果我在 ProgramFilesFolder 之外安装我的应用程序,则没有问题。 我该怎么办?在VS2010中,我可以为每个文件设置构建操作复制到输出目录,我是否需要设置一些特殊的内容?或者在WiX的File元素中是否有设置访问属性的选项?

2 个答案:

答案 0 :(得分:2)

您遇到此行为,因为您的应用程序的一部分(查看器元素)需要在安装文件夹中具有写入权限。

解决方案是request elevation through your application manifest。这样,您的应用程序始终以管理员权限运行。

答案 1 :(得分:1)

安装或使用应用程序时是否会抛出异常?

如果是后者,我唯一的猜测是有问题的DLL试图在这种情况下将某些内容写入受保护的文件夹之一Program Files。你应该消除它,使它在没有管理员权限的情况下工作。