使用管理员权限运行VS安装程序项目构建的MSI安装程序

问题描述 投票:0回答:1

我正在使用 VS2019 和安装程序项目扩展构建 MSI 安装程序。

MSI 必须以管理员权限运行,所以我按照以下步骤操作。

安装程序项目文件 (*.vdproj) 具有以下选项,如果我将 RequiresElevation 设置为“TRUE”,安装程序会在继续安装之前询问管理员权限。

...

"MsiBootstrapper"
{
"LangId" = "3:1033"
"RequiresElevation" = "11:TRUE"
}

...

这对于没有先决条件的 MSI 安装程序非常有效。

但是我的安装程序有先决条件(vcredist),在这种情况下,上述解决方案不起作用。 也就是说,如果安装程序具有先决条件,即使我将 RequiresElevation 设置为“TRUE”,安装程序在继续安装之前也不会询问管理员权限。

你能帮我处理这种情况吗?

谢谢你, 问候。

"RequiresElevation" = "11:TRUE" 当 MSI 具有先决条件时,解决方案不起作用。 具有先决条件 (vcredist) 的 MSI 必须显示一个询问管理员权限的对话框。

windows-installer visual-studio-2019 windows-11 admin-rights vs-installer-project
1个回答
0
投票

Visual Studio 安装程序项目扩展创建一个 setup.exe,该文件显示为运行“asInvoker”。如果您想强制 setup.exe 以管理员身份运行,那么您需要手动更改 setup.exe 清单。

打开开发人员命令提示符并导航到 setup.exe 文件的位置

通过运行命令“mt -inputresource:setup.exe;#1 -out:setup.manifest

提取清单”

编辑 setup.manifest 将“asInvoker”更改为“requireAdministrator”。

通过运行命令“mt -manifest setup.manifest -outputresource:setup.exe;#1”更新 setup.exe 中的清单

现在运行 setup.exe 应该会发出同意提示,然后它将以管理员身份以提升的权限运行。在我的快速而肮脏的测试中,这是唯一会看到的同意提示。

© www.soinside.com 2019 - 2024. All rights reserved.