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

发布于 2024-10-21 02:33:35 字数 420 浏览 2 评论 0原文

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

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

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

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

I have a working program that I am ready to generate an MSI from for distribution. The default install location is C / Program Files / Foo / Bar , and that's where I'd prefer it install. However, after installing in that location, the program refuses to run unless right-clicked and "run as administrator".

I understand that the program requires administrator access because it is installed in C / Program Files (I have an alternate install path that installs it to the desktop that lacks this problem), so I am looking for a way to not have to run the program as an administrator every single time I want to use it.

I had thought that installing the .msi "as administrator" would solve the problem, but right-clicking the .msi does not provide a "run as administrator" as I expected.

Is there any way to make it so I don't need to run the program as an administrator each time, while maintaining the c / program files install directory?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

沫雨熙 2024-10-28 02:33:35

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

Build the MSI with a setup.exe. You can then right click the EXE and run as Admin. You can't do this to the MSI because it isn't a program, it's a document ( database ) that's executed by a different program ( msiexec.exe ).

屋顶上的小猫咪 2024-10-28 02:33:35

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

解决方案是使用每个用户的位置来存储应用程序数据。例如用户配置文件夹下的应用程序数据(AppData)文件夹和HKEY_CURRENT_USER。

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文