Visual Studio生成了MSI安装程序,程序文件和管理员访问权限

时间:2011-03-09 16:54:02

标签: c# windows admin-rights

我有一个工作程序,我准备从分发中生成MSI。默认安装位置为C / Program Files / Foo / Bar,这是我更喜欢安装的位置。 然而,在该位置安装后,程序拒绝运行,除非右键单击并“以管理员身份运行”。

我知道该程序需要管理员访问权限,因为它安装在C / Program Files中(我有一个备用安装路径,将其安装到没有此问题的桌面),所以我正在寻找一种不具备的方法以我每次想要使用它的方式以管理员身份运行程序。

我原以为安装.msi“作为管理员”可以解决问题,但右键单击.msi不会像我预期的那样提供“以管理员身份运行”。

有没有办法实现这一点所以我不需要每次都以管理员身份运行程序,同时保留c / program files安装目录?

2 个答案:

答案 0 :(得分:2)

使用setup.exe构建MSI。然后,您可以右键单击EXE并以管理员身份运行。您无法对MSI执行此操作,因为它不是程序,而是由其他程序(msiexec.exe)执行的文档(数据库)。

答案 1 :(得分:0)

通常,当应用程序尝试在每个计算机位置(如Program Files或HKEY_LOCAL_MACHINE)中写入数据时会发生这种情况。在这种情况下,只有在以管理员身份启动时,应用程序才会起作用。

解决方案是使用每用户位置来获取应用程序数据。例如,用户配置文件文件夹下的Application Data(AppData)文件夹和HKEY_CURRENT_USER。

但是,如果您的应用程序确实需要管理员权限,则可以使用UAC application manifest

相关问题