visual-studio-2010 - VS2010 安装项目 - 以管理员身份运行

标签 visual-studio-2010 installation uac

我有一个 VS2010 解决方案,其中包含 2 个项目 - 一个 .NET 4 程序和一个安装程序。安装程序只是一个带有先决条件的简单安装项目 - .NET Framework 4。

问题是我需要安装程序 setup.exe 始终以管理员身份运行,否则安装将在 UAC 下失败。 (默认情况下它不会提示我提升权限。)

我试着放一个 setup.exe.manifest (如下所示)与 setup.exe 一起强制它以管理员身份运行,但不幸的是 Windows 忽略了它,很可能是因为 setup.exe 本身已经嵌入了另一个 list 文件,并且它被设置为 asInvoker 而不是 requireAdministrator。

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
</asmv1:assembly>

我还尝试添加具有以下属性的启动条件:-
(name): Elevated
Condition: Privileged
Message: This installation requires elevated permissions to continue.

那也无济于事。

那么任何人都可以请说明如何解决这个问题吗?

附言我知道您可以通过更改 setup.exe 的兼容性设置来解决此问题,但这是一个手动过程,无法通过自动构建过程 (TFS) 完成。另外,提供具有兼容性设置的快捷方式也很奇怪,因为没有人提供同一文件夹中 setup.exe 的快捷方式,更不用说快捷方式需要事先知道 setup.exe 的确切路径。 (安装包将被移动。)

编辑:顺便说一句,我的问题和描述的完全一样here .但不幸的是,没有为那个人找到解决方案,提问者只是要求他的客户手动使用以管理员身份运行,这是我试图避免的。

最佳答案

正如 Frank 所指出的,Microsoft 网站上记录了 Visual Studio 安装项目的行为:

Visual Studio Installer Deployment

换句话说,setup.exe由 VS008 和 VS2010 生成的程序将始终在不提示权限提升的情况下运行(除非您使用“以管理员身份运行”上下文菜单选项明确运行它)。它将依次将每个必备组件以及主 MSI 安装程序作为单独的进程运行,并提示为需要它的任何进程提升权限。这意味着可能会有多个海拔提示。

但是,由于某些原因,这并不总是有效。就我而言,当我运行 setup.exe 时,根本没有出现 .NET Framework 先决条件的提升提示。 . 但是如果我直接运行先决条件安装程序,则会出现提示。这意味着问题不在于先决条件组件,而在于 setup.exe或与 Windows 本身。

解决方案(或解决方法)?根据上面链接中的微软,我们可以强制setup.exe启动每个必备组件和主 MSI 以在提升提示下运行。为此,我们需要手动编辑安装项目文件 (.vdproj) 并更改以下 RequiresElevation值到 , 如下所示:

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

这不是理想的解决方案,但已经足够接近我最初的要求,所以我对这个解决方案很满意。

关于visual-studio-2010 - VS2010 安装项目 - 以管理员身份运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11496746/

相关文章:

installation - 如何使用 WiX 在开始菜单中创建多级子文件夹

c++ - 使用 QT Creator 如何将执行级别设置为 requireAdministrator

file - Win32 - 获取将文件保存到C盘的权限

c# - 使用 UAC 部署 C# 应用程序

visual-studio - 如何将VS 2010解决方案转换回2008

c# - 如何检索启动自动化测试的工作项的 ID

css - 在 Visual Studio 的 CSS 源代码编辑器中打开一个文件

visual-studio - 是否有 Visual Studio 2015 调试步骤跳过?

visual-studio - 卸载 ReSharper 4.5

bash - Homebrew 软件 NoMethodError:OS::Mac:Module 的未定义方法 `prefer_64_bit?'