【问题标题】:How do I create a manifest for a windows installer?如何为 Windows 安装程序创建清单?
【发布时间】:2010-11-27 08:23:58
【问题描述】:

我们的应用程序有一个安装程序,必须下载并以管理员权限运行,就像许多其他安装程序一样。但是,安装程序未命名为“setup.exe”,因此 Windows 不会自动检测到它需要提升才能运行。

坦率地说,更改安装程序名称以使事情正确提升听起来很混乱。 This article 谈了很多关于 UAC 和提升的内容,它说您可以使用清单来制作需要授权的东西。

所以,我们只想为我们的安装程序创建一个清单。但是,我们如何确保清单存在?如果用户只是下载 our_application_v13.exe,我们如何确保他们也获得清单? AFAIK 在这种情况下,清单必须是一个名为“our_application_v13.exe.manifest”的文件。

由于他们只是从我们的网站下载文件,我们如何确保他们也获得清单?我们能否以某种方式将其构建到可执行文件中,或者以其他方式将可执行文件标记为需要提升?我们使用的是数百年前的安装工具,我们无法更改,因此它没有任何与此相关的功能。

谢谢!

【问题讨论】:

    标签: windows installation uac manifest elevation


    【解决方案1】:

    清单也可以在应用程序的本机资源部分(在 EXE 内)。

    【讨论】:

      【解决方案2】:

      如果安装工具允许您更改/附加/编辑生成的 EXE 文件的资源,您可以将清单文件添加为资源类型为 24(Windows 标头中的 RT_MANIFEST)和资源 id 的资源1.

      如果安装工具没有内置工具来插入资源,那么您可能需要编写一个工具来对 install.exe 文件进行后处理以插入资源。查找 Windows API BeginUpdateResouce 和 EndUpdateResource。它们有一些限制——如果 EXE 根本不包含任何资源文件,它们往往无法工作,但大多数安装工具生成的 exe 文件至少包含版本信息资源。

      此外,如果安装经过数字签名,则必须在插入清单资源后完成。


      另外,mt.exe 包含在 Platform SDK 和大多数版本的 Visual Studio 中,可以选择嵌入、提取和合并清单资源。

      【讨论】:

        【解决方案3】:

        有来自 Heaventools Software 的 Resource Tuner Console

        Resource Tuner Console 是一个命令行工具,使开发人员能够自动对安装 exe 文件进行后处理并插入清单资源。具体参见添加应用程序清单页面了解更多详情:

        【讨论】:

          猜你喜欢
          • 2015-06-27
          • 2011-04-15
          • 2011-07-20
          • 1970-01-01
          • 1970-01-01
          • 2012-09-23
          • 2018-09-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多