问题标签 [wix-extension]

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 投票
2 回答
4455 浏览

wix - 如何在welcomeDlg之前插入自定义对话框而不弄乱UI序列

我想创建一个自定义对话框,安排在欢迎对话框之前。自定义对话框有一个位图控件、一些文本控件和两个用于取消 (SpawnDialog->CancelDlg) 和下一步 (NewDialog->WelcomeDlg) 的按钮。没有花哨的自定义操作或设置属性。

  • 蜡版本:3.8
  • 使用 WixUI_InstallDir.wxs

我已经找到了以下问题:如何在 WelcomeDlg 之前插入自定义对话框? 尽管它被标记为已回答,但提问者会收到与我使用该答案的解决方案相同的错误消息(请参阅评论)。所以请不要将此标记为重复。

以下代码(来自 customDialog.wxs,在 WixUi_InstallDir.wxs 中带有 dialogRef)确实构建了,并且自定义对话框显示为第一个对话框,...

...但是 UI 序列完全搞砸了:

customDlg -> welcomeDlg -> verifyDlg -> welcomeDlg -> verifyDlg -> progressDlg ...

因此,单击“安装”按钮会跳转回欢迎对话框。在第二个“转”中,单击安装按钮具有触发安装的预期效果:-P

我尝试通过@Before、@After 或@Sequence(我使用 Orca 来查看 UISequence)在不同的地方安排我的自定义对话框,甚至构建我自己的 WelcomeDlg(如此处所述:http://neilsleightholm.blogspot。 de/2008/08/customized-uis-for-wix.html )。我弄乱了 WelcomeDlg 中的 InstallUISequence-Element,比如在自定义对话框之后安排它。但是(惊喜)@After="CustomDlg" 与自定义对话框中的@Before="WelcomeDlg" 具有相同的效果,再次弄乱了 UI 序列。

我考虑过用户帐户控制会导致混乱,但是 UAC 应该怎么做才能退回 MSI 的 ui 序列?对我来说毫无意义。无论如何,我尝试通过 admin-Cmd 运行 MSI,点击安装按钮时应该抑制 UAC 的任何提示。但仍然是同样混乱的 UI 序列。

提前感谢您的帮助。

0 投票
2 回答
850 浏览

wix - 使用条件元素禁用 WIX 中的复选框

我正在尝试根据项目配置禁用 Wix 复选框。到目前为止,它没有奏效。有人知道如何使它工作吗?

0 投票
1 回答
1827 浏览

.net - WIX 检测 .net 4.5 没有找到 PropertyRef NETFRAMEWORK45 集?

我把它作为评论放在

如何在 WiX 中检查 .NET framework 4.5 prerequestics

但我认为我需要将此作为一个单独的问题提出。我没有让我的安装赶上 .NET 4.5 的安装。我安装了 .NET 4.5。我参考了说明。但是,即使安装了 4.5,我仍然会收到条件弹出消息。我按照以下说明进行操作:

http://wixtoolset.org/documentation/manual/v3/customactions/wixnetfxextension.html

http://wixtoolset.org/documentation/manual/v3/howtos/redistributables_and_install_checks/check_for_dotnet.html

我使用的是最新的 wix 3.8 版本,即使按照我认为的指示进行操作,也无法识别 .NET 4.5。

1.) 使用顶级 wix 标签进行 wxs 更新

2.)添加 propertyRef 标签(我相信它在产品部分 - 可能是一个错误)

3.)在产品部分添加条件块,我也认为它与 PropertyRef 处于同一级别

4.) 我在 bat 文件的命令行中使用了蜡烛和灯光

两个日志似乎都没有出现任何问题

dev1.log:

Windows Installer XML 工具集编译器版本 3.8.1128.0 版权所有 (c) Outercurve Foundation。版权所有。

我的项目.wxs

dev2.log 有一些警告,但不相关:

Windows Installer XML 工具集链接器版本 3.8.1128.0 版权所有 (c) Outercurve Foundation。版权所有。

C:\SVN\myproject_Trunk\client\Build\wix\myproject.wxs(251):错误 LGHT0204:ICE38:组件 NonAdvertisedShortcut 安装到用户配置文件。它必须使用 HKCU 下的注册表项作为其 KeyPath,而不是文件。C:\SVN\myproject_Trunk\client\Build\wix\myproject.wxs(259):错误 LGHT0204:ICE38:组件 NonAdvertisedShortcut2 安装到用户配置文件。它必须使用 HKCU 下的注册表项作为其 KeyPath,而不是文件。C:\SVN\myproject_Trunk\client\Build\wix\myproject.wxs(357):警告 LGHT1076:ICE40:REINSTALLMODE 在属性表中定义。这可能会造成困难。C:\SVN\myproject_Trunk\client\Build\wix\myproject.wxs(251):错误 LGHT0204:ICE43:组件 NonAdvertisedShortcut 具有非广告快捷方式。它应该使用 HKCU 下的注册表项作为其 KeyPath,而不是文件。C:\SVN\myproject_Trunk\client\Build\wix\myproject.wxs(259):错误 LGHT0204:ICE43:组件 NonAdvertisedShortcut2 具有非广告快捷方式。它应该使用 HKCU 下的注册表项作为其 KeyPath,而不是文件。C:\SVN\myproject_Trunk\client\Build\wix\myproject.wxs(30):警告 LGHT1076:ICE48:目录“DRIVE.C”似乎在属性表中被硬编码到本地驱动器。C:\SVN\myproject_Trunk\client\Build\wix\myproject.wxs(254):警告 LGHT1076:ICE90:快捷方式“ScKey001”的目录是公共属性(全部大写),位于用户配置文件目录下。如果 ALLUSERS 属性的值在 UI 序列中更改,这会导致问题。C:\SVN\myproject_Trunk\client\Build\wix\myproject.wxs(260):警告 LGHT1076:ICE90:快捷方式“ScKey002” 有一个公共属性目录(全部大写),位于用户配置文件目录下。如果 ALLUSERS 属性的值在 UI 序列中更改,这会导致问题。

我已经使用 -v 选项轻松运行,并且还删除了 ICE 选项。

看来扩展程序没有打包我的 MSI。

运行 msiexec 以获取详细日志似乎也没有显示任何内容。

我觉得我在某个地方犯了一个简单的错误。

Software\Microsoft\NET Framework Setup\NDP\v4\Full 处的注册表确实具有适当的版本和发布值。

0 投票
2 回答
1050 浏览

wix - 如何比较wix ExePackage中的字符串?

我正在使用上面的代码。在安装条件下,我想检查SqlEdition32(其值由注册表搜索提供)是否是 Express 版本,但我有错误提示:

错误 0x8007000d:无法解析条件“SqlVersion32 < v10.50.1600.1 AND SqlEdition32='Express Edition'”。第 46 位出现意外字符。

位置 46 是我将SqlEdition32字符串变量与字符串“Express Edition”进行比较的位置 我想知道如何在 WiX 中比较字符串?

0 投票
1 回答
1120 浏览

wix - 在 XmlFile 元素的 xpath 中添加命名空间(Wix Util 扩展)

wix 中 element的ElementPath属性 XmlFile接受一个 xpath 来选择目标。如何在此 xpath 中包含命名空间前缀?

0 投票
1 回答
963 浏览

powershell - 从 WIX 包安装 PowerShell 模块

我写了一个powershell模块。

我可以使用 InstallUtil.exe 从命令行安装它

但是我不希望我的用户这样做。所以我想开发一个 WIX 包来安装我的 powershell 模块。

在我的 wix 包中,我尝试启动 installutil 但它不起作用。我还在网上找到了一些文章,告诉我不要使用 installutil。

所以问题是如何开发一个安装powershell模块的wix包。

我的目标是

  1. 从 wix 安装 powershell 模块
  2. 编辑 Profile.ps1 并添加新的管理单元。
0 投票
1 回答
221 浏览

wix - 创建单个 MSI 安装程序

我开发了一个 32 位和 64 位格式的应用程序。这些应用程序也需要相应的注册表项。我使用 WiX 将这些作为 32 位和 64 位的单独软件包提供。

现在我的要求是创建一个安装程序,它根据操作系统配置安装组件。我尝试使用 Bootstrapper 来捆绑我的包。

我的引导程序代码如下所示:

我的引导程序输出是 MSI。当我运行 MSI 时,我会进入MainEngineThread is returning 1620详细日志。

请建议我如何捆绑两个 EXE 以获得单个 MSI 包。

0 投票
1 回答
21544 浏览

c# - 未解决的对 Wix 中符号的引用

我正在尝试使用 Wix 为 MVC4 应用程序创建安装程序。我在此链接找到了一个示例,该示例显示了如何为 MVC4 应用程序创建安装程序

但是当我尝试构建 Wix 设置项目时,它给了我如下错误

我尝试添加 WixUIExtension 作为参考,但它不起作用。

这是 Product.wxs。并且特征节点的子节点会导致此错误

我究竟做错了什么?我知道它对 SO 非常具体,但我在网上找不到任何解决方案。

我正在使用 VS 2012-Wix 4.0

0 投票
2 回答
576 浏览

wix - 升级后文件丢失

我已经安装了 1.1 版。我创建了 1.2 版的升级。在这两种产品中,我都有 2 个文件:

在升级过程中,LockLib.dll 被删除,而不是被替换。在 1.2 的全新安装中,它存在。什么会导致这种行为?

0 投票
2 回答
1982 浏览

wix - 如何在 .wixproj 文件中引用 WixDifxAppExtension?

我正在使用WiX 工具集为 Windows 开发安装程序。我没有直接调用 WiX 工具,而是创建了一个.wixproj 文件并使用 MsBuild 来构建它。我的安装程序需要安装驱动程序,所以我决定尝试Difxapp Extension

问题是我不知道如何在我的 .wixproj 文件中正确添加 Difxapp 扩展名。在ItemGroup标记内,我添加了<WixExtension Include="WixDifxAppExtension" />这会导致 MSBuild 在 -ext "C:\Program Files (x86)\WiX Toolset v3.8\bin\WixDifxAppExtension.dll"调用 Light.exe 时添加参数。但是,我认为我需要做其他事情,因为我收到以下错误消息:

根据this thread from 2009,我需要向light.exe 命令添加另一个参数,该参数应该是:

有没有人可以分享一个示例 .wixproj 来显示需要如何引用 WixDifxAppExtension?或者,有谁知道如何添加任意链接器参数?一定有办法的。

这是我当前的 .wixproj 文件: