如何为 Windows 安装程序创建清单?

2024-01-08

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

坦率地说,更改安装程序名称以使事情正确提升听起来相当混乱。本文 http://msdn.microsoft.com/en-gb/magazine/cc163486.aspx谈论了很多关于UAC和提升的内容,它说你可以使用清单来使某些东西需要授权。

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

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

Thanks!


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

如果安装程序工具没有插入资源的内置工具,那么您可能需要编写一个工具来后处理 install.exe 文件以插入资源。查找 Windows API开始更新资源 http://msdn.microsoft.com/en-us/library/ms648030(VS.85).aspx和结束更新资源。它们有一些限制 - 如果 EXE 根本不包含任何资源文件,它们往往无法工作,但大多数安装工具生成的 exe 文件至少包含版本信息资源。

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


Also, mt.exe http://msdn.microsoft.com/en-us/library/windows/desktop/aa375649(v=vs.85).aspx包含在 Platform SDK 中,大多数版本的 Visual Studio 都具有嵌入、提取和合并清单资源的选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 Windows 安装程序创建清单? 的相关文章

  • 在远程桌面上使用 Powershell 获取 Windows DisplayLanguage

    我正在尝试通过 powershell 获取 Windows 显示语言设置远程计算机 我尝试了 Get WinUserLanguageList 但这会返回所有语言的列表 Get WinSystemLocale 和 Get Culture 也不
  • 你将如何开始自动化我的工作? - 第2部分

    后续这个问题 https stackoverflow com questions 2796128 how would you start automating my job 在经历了第一波进货 9 小时的复制 粘贴 后 我现在相信我已经满足
  • Windows 版 GitKraken 中的文件名太长

    正如建议的Q22575737 https stackoverflow com a 22575737 6623589 我已经更新了我的注册表并设置了git config system core longpaths true在处理长路径时 问题
  • Windows 上的 Node.js 和 Express

    今晚 我决定尝试在我的 Windows 7 计算机上使用 Express 构建一个简单的 Node js 应用程序 安装过程还算顺利 但 Express 拒绝配合 以下是我已采取的步骤 使用以下位置提供的 MSI 安装 Node jshtt
  • 在 C# 中使用反射列出枚举中的值

    我正在尝试使用反射来列出一个 Visual Studio 解决方案内的各个项目中的一些类的公共成员和方法 我尝试访问的所有类都是 C 的 并且它们都是从 C 类访问的 我用来进行这些调用的代码如下 public void PopulateE
  • Windows平台下C语言控制串口DTR和RTS引脚

    如何在windows平台上控制串口的DTR和RTS引脚 我希望通过升高或降低电压来对其进行位敲击或操作 您需要使用EscapeComm 函数 https learn microsoft com en us windows desktop a
  • 使用 Windows 命令行连接文本文件,删除前导行

    我需要连接一些相对较大的文本文件 并且更喜欢通过命令行来完成此操作 不幸的是我只有Windows 无法安装新软件 type file1 txt file2 txt gt out txt 允许我几乎得到我想要的 但我不希望 file2 txt
  • 如何生成Mac应用程序的安装包?

    如何为 OS X 二进制文件以及一些配置和脚本文件创建单个安装程序包 最终文件夹应如下所示 任何帮助 将不胜感激 谢谢 如果您希望将各种东西放置在不同的位置 安装程序在这里 文档在那里 支持文件在这里等等 它们也非常适合提供安装体验的可配置
  • 如何制作一个简单包装 EXE 文件的 MSI

    经过大量实验后 我得出的结论是 Windows Installer 是一种糟糕的技术 但客户需要 MSI 文件 那么 如何创建一个 MSI 文件 将 EXE 文件提取到临时目录 并使用与传递给 EXE 文件相同或相似的选项运行它 MSI 的
  • 如何获取Windows批处理的父文件夹

    我正在编写一个批处理文件 我需要获取该bat文件的父文件夹 有可能吗 注意 我的意思是批处理文件的父文件夹 而不是调用该批处理的提示的当前目录 Thanks 批处理的父文件夹位于变量中 dp0位于 例子 echo off setlocal
  • 当选项卡重新加载(chrome 扩展)时,如何运行此脚本?

    所以我想在指定 URL 中重新加载选项卡时运行脚本 它几乎可以工作 但实际上 id 不能 这是我的清单文件 manifest version 2 name Sample Extension description Sample Chrome
  • Boost + Visual Studio 2010 + Windows 平台 SDK 7.1

    有人可以告诉我 bjam 的命令行开关或其他可以使用新的 Windows Platform SDK 7 1 工具链使用 VS2010 进行 boost 编译的东西吗 您可以在普通的视觉工作室项目中设置该选项 默认值是 v100 是平台 7
  • 安装 Windows 服务时的凭据

    我正在尝试使用 VisualStudio Net 部署项目安装 C Windows 服务项目 要运行部署项目 我右键单击并从上下文菜单中选择 安装 安装向导将运行并最终提示我出现 设置服务登录 对话框 要求输入用户名和密码 当我从命令行使用
  • PostgreSql“运行安装后步骤...数据库集群初始化失败”

    我是一名 Windows 用户 我花了几个小时不断地安装和卸载 然后才使其正常工作 前 10 次左右才看到标题中的错误消息 我将其作为一个自我回答的问题放在这里 以防止其他人在安装时可能遇到同样的问题 并为像我这样第一次使用 Postgre
  • opencv人脸检测示例

    当我在设备上运行应用程序时 应用程序崩溃并显示以下按摩 java lang UnsatisfiedLinkError 无法加载 detector based tracker findLibrary 返回 null 我正在使用 OpenCV
  • 如何在Windows 8上正确使用SCardGetStatusChange?

    智能卡服务在 Windows 8 上的行为有所不同 并且 MSDN 尚未更新其文档 任何人都可以提供有关如何正确调用 SCardGetStatusChange 来监视 Windows 8 上的智能卡操作的代码片段吗 提前致谢 这是我为个人博
  • 在 Windows 7 上安装 Visual Studio 2015 社区版

    我尝试在 Windows 7 64 位上安装 Visual Studio 2015 社区版 由于某种原因 安装程序显示 安装被阻止 并显示错误 此版本的 Visual Studio 需要一台装有较新版本 Windows 的计算机 为了完全安
  • 我无法让 ruby​​ 开发工具包适用于 Windows XP

    所以 我一生都无法让它正常工作 我的最终目标是安装 dbd odbc gem 并使其正常工作 从我读过的多篇文章来看 我需要安装ODBC 绑定 http www ch werner de rubyodbc 对于 ruby 以及 dbd od
  • 如何使用 PowerShell 扩展 ZIP 存档(UTF-8 文件名)

    我的 zip 存档有一个文件 P re No l txt 该 zip 可以通过 Windows 文件资源管理器 7 Zip 或我尝试过的任何其他工具很好地扩展 但我不知道如何从 PowerShell 中做到这一点 显然我已经尝试过展开 存档
  • Wix - 自定义安装目录

    我使用的是 Wix 3 x 用户应该能够选择目标目录 我的Setup wxs目前是这样的 http pastebin com uH1EjbDQ http pastebin com uH1EjbDQ 询问用户自定义目标目录的最简单方法是什么

随机推荐

  • PO 文件本地化未按数据注释的预期工作

    我在我的 asp net core 应用程序中使用了 Orchard Localization 启动 cs services AddPortableObjectLocalization options gt options Resource
  • 谷歌应用程序脚本是同步的吗?

    我是一名 Java 开发人员 同时学习 JavaScript 和 Google Apps 脚本 作为新手 我学习了 JavaScript 的语法 而不是它实际上是如何工作的 我很高兴地使用 Google Apps 脚本并按顺序和同步编写代码
  • Ember.JS 中的动态计算属性已弃用?

    我正在尝试制作一个 ember 应用程序 我有一个计算属性 控制器如下所示 The Controller Todos Controller Ember Controller create SNIP countCompleted functi
  • “eval() uating”条件的替代方法

    在我正在处理的遗留代码库中 有一个条件评估器 它接受用户输入来构建条件 然后使用 php eval 在运行时评估此条件 在不使用 eval 的情况下解决此问题的最佳方法是什么 例如我有一个用户在 UI 中输入的条件 1 gt 0 必须对此进
  • 使用 VBA 从 Excel 工作表更新 SQL

    我正在尝试使用 VBA 从 Excel 工作表更新 SQL 中的一些记录 我在 Excel 工作表中有很多记录 所以这就是为什么我想自动化这一点 以下是我要更新 rmn dr 的字段示例 t id 在两个表中都是唯一的 我想使用 Excel
  • ADB 没有响应 - Android Studio

    不要将其标记为重复项 让我解释一下出了什么问题并告诉你我做了什么 所以这是我的问题 当我打开 Android Studio 时 它给我一个错误 如下所示 然后我进入我的 Windows 防火墙设置 这是我所拥有的 如您所见 防火墙已关闭 然
  • 工作节点组未加入 EKS 集群

    我按照这个博客在 AWS 上设置了 open5GS https aws amazon com blogs opensource open source mobile core network implementation on amazon
  • 为什么 simplexml_load_file 相对于主机文件不起作用?

    I have simplexml load file指令放置在包含的 PHP 文件中 但该指令的工作原理取决于我包含此文件的位置 为什么 是否可以相对于放置的文件指令解释相对文件路径 您始终可以使用魔法访问当前文件的完整路径 FILE ht
  • partial_fit Sklearn 的 MLPClassifier

    我一直在尝试使用Sklearn的神经网络MLPClassifier 我有一个大小为 1000 个实例的数据集 具有二进制输出 我想对其应用带有 1 个隐藏层的基本神经网络 问题是我的数据实例并非同时可用 在任何时间点 我只能访问 1 个数据
  • Erlang 进程与 Java 线程

    我在读Sa a Juri 所著的 Elixir in Action 一书 第一章 https manning content s3 amazonaws com download b b915834 e80b 4520 939d ff1900
  • Delphi 中的嵌套属性

    Delphi 有没有办法使用嵌套属性 目前我正在使用Delphi XE 例如 TCompoundAttribute class TCustomAttribute public constructor Create A1 A2 TCustom
  • 有没有办法在函数运行完成后运行其他函数?

    def foo pass def bar print good bay 两个功能如打击 现在我想在 foo run 完成后运行 bar 函数 有没有类似类使用的方法 del 据我所知 在课堂方法中我可以使用 del 就像下面这样 class
  • 在表中存储/检索数组的最佳方法

    我目前在 MySQL 中有一个表可以正常存储值 但我想向该表添加一个字段来存储值数组 例如城市 我应该简单地将该数组存储为 CSV 吗 每行都需要它自己的数组 因此我对创建一个新表并为前一个表中插入的每行插入 2 5 行感到不安 我觉得这种
  • 如何在 JavaFX TableView 中的行悬停时发生某些事情?

    现在 当在表格视图中选择一行时 我会在鼠标位置显示对话框 我希望当我将鼠标悬停在每一行上时显示对话框 似乎有一个 CSS hover 所以我认为它可以以某种方式在 java 代码中捕获 您可以创建一个自定义表行工厂 它将侦听器添加到行的悬停
  • 为什么我不能在 std::vector 中使用抽象类?

    我是从这些问题中得出的 为什么我们不能声明 std vector https stackoverflow com questions 2160920 why cant we declare a stdvectorabstractclass
  • 将 $mysqli 设置为 OOP 的全局变量

    好的 这是一个复杂的问题 但任何帮助或建议将非常感激 所以我正在与一个网站合作 使用 htaccess 将所有流量重定向到load php 对于任何sql功能 我有一个抽象类 它有很多查询语句作为传递参数来定义每个查询的细节的函数 例如 t
  • 如何防止 Netlify 因为 process.env.CI = true 将警告视为错误?

    在 Netlify 上部署新项目开始失败 检查日志 我看到以前成功部署的日志中没有的内容 Treating warnings as errors because process env CI true Most CI servers set
  • 以编程方式安排 AWS Lambda 一次性执行

    我有两个 AWS Lambda 函数 我希望 Lambda A 确定某个时间点 例如 2022 年 5 月 4 日 10 00 然后我希望 Lambda B 被安排在这个特定的时间点运行 我可能可以通过使用 Lambda A 以编程方式创建
  • 在 Shiny 应用程序中使用 Font Awesome 5.7 图标

    Shiny s icon 功能仅支持 Font Awesome 4 7 图标 可以在此处找到 Shiny 支持的图标的完整列表 https fontawesome com v4 7 0 icons 自那以后 Font Awesome 已多次
  • 如何为 Windows 安装程序创建清单?

    我们的应用程序有一个安装程序 必须像许多其他安装程序一样以管理员权限下载和运行 但是 安装程序未命名为 setup exe 因此 Windows 不会自动检测到它需要提升才能运行 坦率地说 更改安装程序名称以使事情正确提升听起来相当混乱 本