问题标签 [wix3.9]

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 投票
1 回答
623 浏览

wix - Manually migrate feature states during upgrade

We have a product for which the feature tree has changed considerably between versions, so the MigrateFeatures="yes" option on the UpgradeVersion element does not seem to work.

How would I go about manually converting the old features to the new ones? Do I need a custom action, and if so, how can I do this from there?

0 投票
1 回答
918 浏览

wix - Wix 中的特征选择树中的特征依赖关系

如果在功能选择树中选择了另一个功能,是否有任何方法可以强制安装特定功能?那就是没有功能成为其依赖项的子项?

0 投票
1 回答
428 浏览

msbuild - Wix - 自动化 32 位和 64 位构建

从这个答案开始https://stackoverflow.com/a/15985524/552448

我的解决方案中的所有项目都以“任何 CPU”为目标,但引导程序和 MSI 包除外,因此我使用共享机柜来避免引导程序的最终大小加倍。

我知道我必须使用 x86 构建 MSI,然后使用 x64,最后构建引导程序。手动执行此操作并且有效。

但是,我想自动化这些步骤。

我一直在尝试将 Prebuild 事件添加到 Bundle wixproj 文件中,类似于

但是,这会失败并出现以下错误:

未为项目“MyLibrary.csproj”设置 OutputPath 属性。请检查以确保您为此项目指定了有效的配置和平台组合。配置='发布'平台='x86'。您可能会看到此消息,因为您正在尝试构建没有解决方案文件的项目,并且指定了该项目不存在的非默认配置或平台。

我想让它工作,而不必通过所有项目来添加平台/配置的组合。毕竟,如果我右键单击 MyMSI 并选择构建,这将有效。

当然,我一定是错过了什么。

0 投票
1 回答
118 浏览

installation - 从捆绑包中检测 MSI 包升级

我希望从 InstallShield LE 迁移到 Wix。

InstallShield 生成和 Foobar.Exe 文件。我用 /b 参数运行它,然后使用 dark.exe 生成 wxs 代码。

我已经创建了一个具有相同升级代码的 MSI 包 (Foobar.msi) 和一个具有一些先决条件的链以及 Foobar.msi 和 DIsplayInternaUI=true 的 Bundle。从 InstallShield 升级到 Wix 可以按预期进行。

但是,我希望 Bundle 能够处理所有 UI,就像Rob Mensching 推荐的那样(目前我有两个)。Bundle 如何知道 MSI 正在升级?因为我只需要在第一次安装时显示一些对话框(各种系统设置)。

0 投票
0 回答
139 浏览

service - Wix - 忽略服务无法启动

我正在为我正在安装的服务保留升级的“登录身份”信息。

但是,如果用户/密码不正确,升级将失败。

如何让我的服务无法启动?

我可以通过添加来做到这一点

并使用自定义操作来启动服务。虽然它有效,但我不太喜欢它。

自定义操作只是运行具有以下行的批处理文件:

我在 MSI 中使用安静执行,但是从命令行运行这个批处理文件我有以下输出:

这是预期的行为 -即使服务无法启动,升级也必须继续。如果服务没有启动,有人会很快注意到它并更改凭据。

0 投票
3 回答
2380 浏览

visual-studio-2013 - WIX 安装程序 - 无法更改平台并将其保存为 64 位

在此处输入图像描述

IDE:- VS.NET 2013(更新 2)

使用的 WIX 版本:3.9

Windows 服务 MSI :- 我无法将平台更改为 x64 位并保存。如果我将其更改为 x64 选项并保存构建属性并关闭属性窗口,然后再次重新打开属性窗口。x86 选项再次弹出。虽然项目中使用的 DLL 是基于 64 位的。

这是非常烦人和令人沮丧的。在我点击 ServiceSetup 项目上的 Build 后,生成了 .MSI 文件。MSI 包含基于 32 位的 Windows 服务 .exe 文件。我希望 Windows 服务 .exe 文件为 64 位。

请提出任何解决方案。

0 投票
1 回答
1678 浏览

wix - 将非常大的文件添加到 WiX Burn 引导程序时,如何避免 LGHT0306?

我正在使用WiX Burn 3.9 创建引导程序(带有用于 UI 的自定义托管引导程序应用程序)。我正在构建一个小版本的引导程序(几兆字节),它可以根据需要下载依赖项。我还在构建一个嵌入了所有依赖项的版本,以支持在安全网络上轻松安装。/layout 命令行选项可用于下拉依赖项,但我的组织更喜欢单一的、整体的可执行文件,以使用户保持简单。

一切进展顺利,直到我被要求添加一个 1GB 的虚拟设备文件和相关的安装自述文件。引导程序所要做的就是将它们放在用户在引导程序 UI 中指定的文件夹中。我将 *.ova 和 *.htm 文件放入自解压 zip 可执行文件中,并在命令行上将目标文件夹传递给它。Web 安装程序版本工作得很好,但后来我尝试构建离线安装程序,嵌入所有内容。我开始收到来自灯光的错误:

我发现的关于这个错误的唯一相关的对话是here。这似乎与文件大小有关,而不是文件数。我想知道问题是否与引导程序可执行文件的整体大小(大约 2 GB)或非常大的自解压 zip 可执行文件的大小(大约 1 GB)有关。当我使用 WiX 构建 MSI 时,将内容分解为单独的 cab 文件的语法非常清楚,但我不确定是否为基于 Burn 的助推器公开了相同的概念,或者是否有可能做很多事情嵌入该大小的文件。

0 投票
2 回答
422 浏览

wix - WiX 配置:使用本地应用程序数据路径编辑注册表

我们的 WiX 安装程序配置为通过将以下值添加到某些现有键来编辑注册表:

姓名: "Shell"

价值: "{LocalAppData}\MyApplication\MyApplication.exe"

现在我已经硬输入了这个值,但这显然是平台和用户特定的。

如何确定和使用系统的本地应用程序数据文件夹?

我正在为 Visual Studio 2013 使用 WiX 3.9。

编辑:

我做了以下操作,它清除了该键中的所有注册表值:

为什么会发生这种情况?

编辑2:

没关系,我看到这些属性将强制重新创建整个密钥:

0 投票
1 回答
183 浏览

wix - WiX 工具集:将安装文件复制到新目录

如何获取当前正在执行的安装 (.msi) 文件的实际路径引用?

我想将此文件复制到磁盘上的新位置。我知道我必须为此使用CopyFile :

我在 Visual Studio 2013 中使用 WiX Toolset 3.9。

0 投票
0 回答
706 浏览

wix - WiX:从 RegistySearch 设置安装目录会导致错误“无法访问网络位置”

我正在制作基于 WixUI_Advanced 的安装程序。我正在使用此处的解决方案:WiX: How to override "C:\Program Files (x86)" on x64 machine in WixUI_Advanced 序列?

但是,我希望安装程序记住以前的安装目录。尝试设置 APPLICATIONFOLDER 属性会导致错误“无法访问网络位置”,后跟目录名称。仅当在注册表中实际找到值时(升级程序时)才会发生这种情况。

以下是相关代码:

编辑:我没有包含保存注册表值的代码,但它被保存为 '"[APPLICATIONFOLDER]"' 并删除双引号将其修复为全新安装。也忘记了 SetDirectory 中的括号