问题标签 [wix]

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 投票
3 回答
34899 浏览

com - 如何在 WiX 3 中注册 Win32 COM DLL 文件?

我找到了一个关于注册 DLL 的示例,使用 Windows Installer XML 工具集在 MSI 文件中注册 COM 互操作程序集。,并且 WiX 抱怨“AssemblyRegisterComInterop”属性。

我删除了它并将“Assembly”属性更改为 win32,它说我需要指定 AssemblyManifest 属性,但我应该放什么?

0 投票
1 回答
3126 浏览

.net - 如何使用 MSI (WiX) 将 .NET DLL 安装到 COM+ 应用程序中

更新:看起来这确实是一个 WiX 限制 -无法添加 64 位 com+ 组件 (3.0.3907.0)

我有一个使用 WiX 2.0 创建的带有 MSI 安装程序的 .NET 应用程序。安装程序创建一个 COM+ 应用程序(除其他外)并将一个 .NET 程序集作为组件安装到该应用程序中。此 DLL 是纯托管的,但它调用可能是 32 位或 64 位的混合 DLL。在 32 位平台上一切正常。然而,在 64 位上,COM+ dllhost.exe 进程作为 32 位运行,随后无法加载本机 DLL。当我查看注册表时,我可以看到 COM+ 组件 DLL 已在 Wow6432Node 键下注册,我认为这就是 dllhost 以 32 位运行的原因。

如果我使用组件服务管理单元来删除和重新添加 DLL,它会在“真实”注册表中正确注册,并且 dllhost 以 64 位启动。我如何让安装程序做同样的事情,即。将其正确注册为 64 位 DLL?我已经将 Package Platform 属性设置为“x64”,并为每个组件设置了 Win64="yes" 属性,但这些似乎没有帮助。

COM+ 组件的 WiX 源代码如下所示:

0 投票
1 回答
1129 浏览

wix - 如何从 Wix/DTF 中的即时自定义操作安排延迟自定义操作?

我已经看到这样的声明,即有可能,甚至很常见,从 .wxs 文件中引用一个即时自定义操作,并让该自定义操作安排后续(延迟)自定义操作。我不知道这样做的代码是什么样的。任何人?

0 投票
3 回答
3197 浏览

visual-studio-2008 - WiX 生成的 MSI 未压缩

我使用 WiX3 生成 MSI 安装包。<Package>我在和<Media>元素中都指定了压缩标志:

但生成的 MSI 根本没有压缩 - WinZip 将其从 2M 压缩到 600K。

我错过了什么吗?

我正在使用 VS2008 顺便说一句。

0 投票
4 回答
6134 浏览

image - 是否可以将 .png 图像用于 WiX 位图

我正在使用 2 500K 位图在我的 WiX 对话框上显示图像。

它们极大地增加了安装包的大小,更糟糕的是 - 看起来无法将它们打包为 .cab 文件的一部分,因为它们<binary>在 WiX 术语中是 -es。

那么,我想,有没有办法将其他文件格式用于位图或 WiX 与 BMP 绑定?理想情况下,如果有一种使用 .png 格式的方法会更好,因为它带有一个松散的压缩选项。

0 投票
2 回答
3246 浏览

build - 将文本文件内容包含到 WiX 脚本中

有没有办法从文本文件中读取 WiX 变量的值?

我想要做的是将特定于版本的信息包含到安装包中。

此版本信息在预构建步骤中提取到文本文件中,问题是如何将此文本文件内容传播到构建过程中。

一种可能的解决方案是在预构建步骤中更新整个 .wxs 文件,但感觉有点草率。

有没有其他侵入性较小的方法?

谢谢你。

0 投票
2 回答
676 浏览

wix - DB Pro(数据老兄)和 Wix3 SqlExtension

我正在尝试在安装过程中使用 Wix 创建数据库。我使用 Db Pro Visual Studio SKU(有时称为 Data Dude)设置了我的数据库。但是,输出似乎只能由 sqlcmd.exe 使用,因为它在其中使用特定的语法(变量引用,如:setenvand $(FOO))。

我正在尝试使用显然没有使用 sqlcmd.exe 的 wix sqlextension(我还没有调查它正在使用什么数据访问技术。

有谁知道是否有一种方法可以在 wix sqlextension 中本地使用 data dude 的输出,或者是否有一些东西可以获取 sqlcmd 输出并将其转换为针对 sql server 执行所需的运行时 sql?

请注意,最终目标是将 wix 完全集成到我们的构建系统中,因此我正在寻找一种自动化方法。

0 投票
2 回答
261 浏览

.net - Windows 机器上的产品安装和配置

我正在开发一个由 Web 应用程序和 Windows 服务组成的 .NET 3.5 项目。两者都需要部署在服务器机器上。

我使用 Wix 3 创建了一个 msi 包,它安装应用程序文件、创建快捷方式并注册服务。

我的下一个任务是实现以下内容:

  • 允许通过向导式 GUI 配置 Windows 服务的安装后步骤
  • 允许从文件加载安装设置的预安装步骤
  • 允许将配置备份到文件的预卸载步骤

我看到了两个选项:

  • 通过自定义操作调整 msi 以执行我想要的操作
  • 为 msi (Setup.exe) 创建一个包装器,它将处理所有自定义任务并使用 msiexec 在后台静默运行 msi 包

理想情况下。我想选择选项 2。你的想法是什么?

任何建议将不胜感激。

谢谢,

阿尼

0 投票
2 回答
1719 浏览

wix - 在不同的上下文中以普通用户身份从 MSI (wix) 执行进程

我正在尝试为我们在公司内部使用的某些软件配置安装程序。

安装程序通过 SMS 推送到目标机器,并执行以下步骤:

  1. 终止任何当前正在运行的应用程序实例(该应用程序是一个实用程序,因此这不会对用户产生影响)。
  2. 删除以前的版本。
  3. 安装更新版本。

我们想要它做的是在第 3 步完成后启动已安装的可执行文件(作为当前登录的用户,而不是运行 SMS 作业的系统帐户)。

我尝试添加自定义操作,如下所示:

InstallExecuteSequence元素中,我有以下内容:

但是,当我们尝试此操作时,无论是作为 SMS 作业还是以管理员身份执行,都不会发生任何事情(例如,应用程序没有重新启动)。

有什么建议么?

0 投票
5 回答
5581 浏览

c# - 从托管代码中获取安装日期

是否有使用产品 GUID 检索应用程序安装日期的托管 API?

谢谢。斯科特