2

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

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

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

有什么办法可以让我不需要每次都以管理员身份运行程序,同时维护c / program files安装目录?

4

2 回答 2

2

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

于 2011-03-09T17:44:19.020 回答
0

Usually this happens when the application tries to write data in a per-machine location (like Program Files or HKEY_LOCAL_MACHINE). In this case the application will work only if it's launched as an Administrator.

A solution is to use per-user locations for application data. For example Application Data (AppData) folder under the user profile folder and HKEY_CURRENT_USER.

However, if your application really needs Administrator privileges, you can use an UAC application manifest.

于 2011-03-10T07:17:13.240 回答