问题标签 [windows-installer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
59893 浏览

windows-installer - 如何替换 msi 安装程序中的文件?

我想替换 msi 中的单个文件。怎么做?

0 投票
4 回答
2544 浏览

asp.net - 如何为 .Net 网站、Windows 服务等创建安装程序?

我需要创建一个安装程序来安装以下内容:

  1. ASP.Net 网站
  2. 视窗服务
  3. SQL Express(如果未安装且用户没有 SQL Server)
  4. 登打士图表
  5. ASP.Net AJAX v.1.0
  6. ReportViewer 控件(适用于 2.0 框架)
  7. 检查框架先决条件 (2.0)
  8. 配置 IIS 和 app.config(数据连接字符串等)

能够通过 VS 安装项目做到这一点是否现实?或者,我应该查看其他安装工具吗?

0 投票
3 回答
22798 浏览

installation - 如何使用 WiX 安装程序注册文件类型/扩展名?

我在 WiX 文档(或谷歌,就此而言)中没有找到这个问题的明确答案。当然,我可以在 HKCR 中编写适当的注册表项,但这让我觉得很脏,我希望这是一个标准任务,应该有一个很好的默认解决方案。

对于奖励积分,我想知道如何使其“安全”,即不要覆盖文件类型的现有注册,并且只有在安装期间注册并且未更改时才在卸载时删除注册。

0 投票
4 回答
32186 浏览

installation - 安装程序给出 2732 错误:目录管理器未初始化

我有一个运行良好的 msi 安装程序。我添加了一个外部合并模块。编译过程中出现了一些目录合并错误。我从合并模块的目录表中删除了导致错误的目录。

我收到错误消息:

MSI 错误 2732 错误:目录管理器未初始化。

请帮助解决问题。

0 投票
5 回答
78358 浏览

.net - 使用 InstallUtil 并静默设置 Windows 服务登录用户名/密码

我需要使用 InstallUtil 安装 C# windows 服务。我需要设置服务登录凭据(用户名和密码)。所有这些都需要默默地完成。

有没有办法做这样的事情:

0 投票
3 回答
7515 浏览

c# - 我如何测试另一个安装是否已经在进行中?

假设我正在尝试在 Windows 上自动安装某些东西,并且我想在尝试安装之前尝试测试是否正在进行另一个安装。我无法控制安装程序,必须在自动化框架中执行此操作。有没有更好的方法来做到这一点,一些 win32 api?,而不是仅仅测试 msiexec 是否正在运行?

[更新 2]

改进了我之前使用的直接访问互斥锁的代码,这更可靠:

0 投票
1 回答
2132 浏览

installation - Windows Installer - 重新启动后恢复升级

我有一个 Windows Installer MSI 软件包,用于安装有时需要重新启动才能升级的驱动程序;驱动程序是通过 WriteRegistryValues 之后的延迟自定义操作安装的。当需要重新启动时,会进行回滚,并告知用户重新启动并再次运行安装。

在 InstallExecuteSequence 中,RemoveExistingProducts 操作位于 InstallValidate 和 InstallInitialize 之间,因此当升级发出需要重新启动的信号时,先前的包已被删除。因此,当需要重新启动时,在回滚和错误消息“重新启动并重新运行”之后,我们的软件不再安装。如果用户重新启动并重复安装,一切正常。

我需要自动重启和恢复安装,所以用户实际上不需要做任何事情(当然除了同意重启。)

写入注册表的 RunOnce 键的命令可以在重新启动后再次运行安装,但我认为将 ForceReboot 设置为驱动程序安装的延迟自定义操作中发生的情况会很棘手。决定在恢复安装中做什么也可能很棘手。

非常欢迎有关最佳实践的建议或潜在问题的提示。

0 投票
3 回答
1511 浏览

installation - 如何确定 Windows Installer 正在执行升级而不是首次安装?

我有一个安装程序,如果它退出,它会升级以前版本的应用程序。当安装为升级模式时,我想跳过某些操作。如何确定安装是在升级模式还是首次安装模式下运行?

我正在使用 Wise Installer,但我认为这并不重要。我假设 Windows Installer 具有在安装程序处于升级模式时设置的属性。我似乎无法找到它。如果该属性存在,我假设我可以在条件语句中使用它。

0 投票
1 回答
5667 浏览

wix - 安装一系列嵌入式 MSI 包,每个包都使用嵌入式 UI - 显示常用进度条

我正在使用 Windows Installer 4.5 新功能和 WiX 来生成MSI包。

我创建了一个 MSI 链安装,以便将其他 MSI 包的集合安装为事务。每个包都使用新的Embedded UI选项,因此 UI 可以是WPF。到目前为止一切正常。

除了目标之一是为所有安装显示一个通用进度条。此时,我在链安装程序中有一个进度条,但是在其他包开始运行之前,这个进度条达到了 100%。

我读过一篇文章Fun with MsiEmbeddedChainer,其中指出可以实现我想要的。但我无法让它工作。我想要更详细的解释,也许还有一些代码示例。

0 投票
1 回答
1241 浏览

windows-installer - 使用 Orca 将组合框添加到设置

我试图在设置组件期间在对话框中显示组合框。目前,我们有一个单选按钮组。我认为用组合框替换它应该像在 MSI 的“组合框”表和“控制”表中添加正确的条目一样简单,在相应的对话框中用组合框替换对单选按钮组的引用。但是,这是行不通的。设置崩溃并给出错误 #2885。[Windows 安装程序错误 2885:无法在对话框 [2] 上创建控件 [3]。从这里开始。]

关于如何做到这一点的任何想法?我显然只能使用 Orca(这是自从任何人都记得以来一直使用的东西)。