问题标签 [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 回答
4670 浏览

visual-studio - 自动发布脚本和 Visual Studio 安装项目

我认为这里的大多数人都了解全自动构建的重要性。

问题是我们的一个项目现在正在使用集成的 Visual Studio 安装项目 (vdproj),并且最近已移植到 Visual Studio 2008。不幸的是,那些不会在 MSBuild 中构建,并且在 2008 上调用 devenv.exe /build 只会崩溃,显然它在所有多核计算机上都这样做(!!!)。所以现在我可以选择要么回滚到 .Net 2.0 和 2005,要么干脆放弃 Visual Studio 部署,但首先,我想要第二个意见。

任何人都知道另一种构建 .vdproj 的自动化方法,它不需要我们打开 IDE 并单击内容?


当我说我们将放弃 vdproj 时,我想到的是 WiX。你有什么经验吗,好东西,警告?

0 投票
3 回答
10360 浏览

wix - 使 WiX 安装集升级到同一个文件夹

如何对使用WiX构建的安装集 (MSI) 进行重大升级,并将其安装到与原始安装相同的文件夹中?

安装被正确检测为升级,但仍显示目录选择屏幕并使用默认值(不一定是当前安装文件夹)。

我是否必须进行手动工作,例如在第一次安装时将安装文件夹保存在注册表项中,然后在升级时读取此注册表项?如果是这样,有什么例子吗?

或者是否有一些更简单的方法可以在MSI或 WiX中实现这一点?

作为参考,我当前的 WiX 文件如下:

0 投票
3 回答
20672 浏览

wix - 如何使用 WiX 创建事件日志源

我正在为使用自定义事件日志源的网站创建安装程序。我希望我们基于 WiX 的安装程序在安装期间创建该事件日志源。

有谁知道使用 WiX 框架执行此操作的最佳方法。

0 投票
6 回答
8905 浏览

wix - .msi 文件能否自行安装(可能通过自定义操作)?

我想构建一个 MSI,在其安装过程中,它将自身连同其包含的文件/组件一起部署到 TargetDir。

因此 MyApp.msi 在其文件表中包含 MyApp.exe 和 MyAppBootstrapperEmpty.exe(没有资源)。

用户启动 MyAppBootstrapperPackaged.exe(包含 MyApp.msi 作为资源,从某处的 Internet 或电子邮件或其他方式获得)。MyAppBootStrapperPackaged.exe 将 MyApp.msi 提取到一个临时文件夹并通过 msiexec.exe 执行它。

msiexec.exe 进程完成后,我想要 MyApp.msi、MyBootstrapperEmpty.exe(以及 %ProgramFiles%\MyApp 文件夹中的 MyApp.exe,以便 MyApp.exe 在运行时可以确保访问 MyApp.msi(用于创建以下 -提到的包装内容)。

MyAppBootstrapper*.exe 可以尝试将 MyApp.msi 复制到 %ProgramFiles%\MyApp 文件夹,但需要提升才能这样做,并且不允许通过 Windows Installer 卸载过程(从添加/删除程序或其他方式)将其删除,这应该保留。

显然(我认为这很明显 - 我错了吗?)我不能将 MSI 作为文件包含在我的媒体/CAB(鸡和蛋场景)中,所以我相信必须在安装之前通过自定义操作来完成过程中,将原始 MSI 添加到 MSI DB 的媒体/CAB 和文件表中的适当条目。这可以做到吗?如果可以,怎么做?

考虑一个内容分发模型,其中内容文件只能与应用程序一起分发。内容由最终用户在运行时通过应用程序生成,并打包成一个可分发的 EXE,其中包括应用程序和内容。

MyApp 的安装程序必须保持为 MSI,但可以由 Bootstrapper EXE 执行。安装的 MyApp.exe 必须同时访问 MyApp.msi 和 EXE 将由应用程序在运行时从基础(空)MyAppBootstrapper.exe(也由 MSI 安装)以及由应用程序创建的内容“组装”最终用户。EXE 的资源 MSI 必须与用于安装正在执行运行时打包的 App 的资源 MSI 相同。

WIX 不能与 MyApp 一起安装。

在运行/打包时不能有网络依赖(即不能通过 Web 服务进行打包 - 必须在本地完成)。

我熟悉(并使用)自定义操作(托管和非托管,通过 DTF 和其他方式)。

0 投票
12 回答
130140 浏览

installation - 如何实现 WiX 安装程序升级?

在工作中,我们使用WiX来构建安装包。我们希望产品 X 的安装会导致在该机器上卸载该产品的先前版本。

我在 Internet 上的几个地方阅读了有关重大升级的信息,但无法使其正常工作。任何人都可以指定将卸载以前版本功能添加到 WiX 需要采取的确切步骤吗?

0 投票
5 回答
3022 浏览

deployment - 如何使用 WiX 3.0 部署注册表项和值?

如果我想创建注册表项

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MyApp

带有字符串值

事件消息文件:C:\Path\To\File.dll

如何在我的WiX 3.0 WXS 文件中定义它?非常感谢 XML 应该是什么样子的示例。

0 投票
3 回答
8303 浏览

installation - 如何最好地在 WiX 中定义自定义操作?

我有一个WiX安装程序和一个使用安装程序属性的自定义操作(加上撤消和回滚)。自定义操作必须在所有文件都在硬盘上之后发生。为此,您似乎需要 WXS 文件中的 16 个条目;根内有八个,如下所示:

中的八个InstallExecuteSequence,如下所示:

有没有更好的办法?

0 投票
3 回答
22798 浏览

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

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

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

0 投票
1 回答
5667 浏览

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

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

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

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

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

0 投票
5 回答
6473 浏览

wix - 使用 WiX 注册 COM 服务器

我一直在尝试确定使用 WiX 注册 COM 服务器以创建 Windows Installer 包的最佳案例解决方案,但我正在苦苦挣扎。

在这篇部署工程存档:HOWTO:将 Regsvr32.exe 与 WIX 一起使用的帖子中,有一个公开请求,要求“设置警察”通过 exe 自定义操作来打击使用 regsvr32。regsvr32我知道使用它向系统注册而不是向用户注册的弊端,但我还记得OleSelfRegister可能有来自微软支持公告的问题(抱歉,找不到链接) - 我相信他们建议使用regsvr32.

有什么建议吗?