问题标签 [wix3]

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 回答
3253 浏览

wix - WIX 按钮/弹出对话框

有没有办法向 WIX 自定义 UI 添加按钮?更重要的是如何让它产生一个对话框?

像这样的东西,

执行此操作时出现错误,

安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码是 2885

我正在尝试制作一个弹出对话框,允许用户输入某些数据库设置。为什么我想让它弹出是因为大多数用户不会考虑这些设置。任何信息,将不胜感激。

0 投票
1 回答
274 浏览

wix - 安装顺序

我正在编写一个具有 EULA 的安装程序,然后是一个对话框,询问他们是要进行“自定义安装”还是“默认安装”。

如果他们选择自定义,他们会得到一堆与 SQL 设置相关的对话框(如下所示,如果他们选择了自定义安装,则下一个按钮将启动“StartupMenu”对话框)。

如果他们选择默认,安装程序应该跳到“安装”阶段,不再问任何问题。我该怎么做呢?

我的下一个按钮是这样定义的,

当 CUSTOMINSTALL = 1 很好,但它是下一行,我必须放什么 CUSTOMINSTALL = 0 才能让它直接进入安装阶段?

0 投票
1 回答
2264 浏览

wix - EndDialog 是做什么的?

我有一个 WIX 安装程序,我正在尝试弄清楚这条线实际上在做什么(附加到我的 WIX 对话框上的下一个按钮)。

在我看来,这条线意味着我们在显示自定义对话框后将控制权交还给安装程序。但是它如何知道接下来要显示哪个对话框。在我的情况下,它应该显示指示安装进度的对话框,但它跳转到错误的对话框。

如果我把它改成这个(ProgressDlg 是在 WixUI_Minimal UI 集中显示安装进度的对话框,这是我真正想要跳转到的那个),

当我尝试安装时它会引发错误

0 投票
2 回答
20813 浏览

oracle - 在 WiX 中,我如何测试 Oracle ODP.Net 是否存在注册表项(不是值)

更具体地说,我想测试是否在机器上安装了 Oracle ODP.Net。我想通过测试 HKLM\SOFTWARE\ORACLE\ODP.NET 注册表项来做到这一点。

ODP.Net 使用的实际值存储在 HKLM\SOFTWARE\ORACLE\ODP.NET\2.111.6.20 但是我假设这个较低级别键的名称会随着 Oracle 发布更新而改变。

我尝试了以下失败,可能是因为(默认)值并不真正存在,或者可能是因为它为空(我不确定它在注册表中的确切表示方式)。

因此,以下任何一项都会对我有所帮助:

  • 一种搜索注册表项下没有值的方法。
  • 一种使用包含通配符的路径搜索注册表值的方法
  • 测试安装 ODP.Net 的更好方法
0 投票
0 回答
1968 浏览

wix - 如何检测Wix3中正在运行的进程?

我正在使用wix3构建一个安装文件,我想知道在安装过程中outlook是否正在运行。如果 Outlook 仍在运行,安装程序应通知用户关闭它或安装后必须重新启动。

我注意到有一个功能可以发送消息直接关闭outlook,但这不是很友好。我想知道在这种情况下是否可以调用 FileInUse 对话框。

谢谢。

0 投票
2 回答
2759 浏览

wix - 在 Wix 3 中使用 XMLFile 时如何设置 xmlns 属性

我在安装期间使用 XmlFile 元素向 XML 文件添加元素:

我正在写入的空文件如下所示:

运行安装程序后,我最终得到了这个:

问题是空的 xmlns 属性覆盖了文件根节点中指定的 xmlns,因此 nhibernate 无法正确识别属性元素。

如何设置值以匹配根节点或删除 xmlns 属性?

我花了一些时间寻找答案,我发现最接近的是“做你在 MSXML 中会做的事情”,这对我没有帮助,因为它没有说明如何在 WiX 中做到这一点(例如 XmlFile 上的什么属性使用)。

编辑 为了稍微解释 Rob 的回答,在一个我可以使用漂亮格式的地方:

  • 通过在 XmlConfig 元素上设置 Node="document" 来添加文档片段。
  • 您必须明确设置名称空间,否则您将再次获得默认名称。
  • 此外,尽管您要添加一个“文档”,但如果您指定多个元素,它似乎不起作用。您会收到一个神秘且完全无用的“安装向导提前结束”运行时错误。

所以我的固定代码如下所示:

0 投票
2 回答
7843 浏览

plugins - 如何使用 WiX 安装插件或附加组件

我需要为我们编写的应用程序安装插件(或附加组件)。我使用 WiX 作为应用程序的安装程序。在我看来,插件是应用程序的可选部分。它需要集成到应用程序的文件系统结构中,但也可以在以后添加,即使是无法控制原始应用程序安装程序的人。因此,我发现 WiX 的所有开箱即用机制都不足:无论是小/次要/主要更新还是补丁机制似乎都不符合前面短语中所述的先决条件。所以我发现对我来说最好的方法是让原始安装程序留下一个注册表项,以某种方式指定安装插件的位置,并为插件构建单独的安装程序。这留下了一个问题,如何继续卸载,但这是我以后可以处理的问题。有没有人有更好的主意?WiX中是否有任何我不知道的专门针对此的机制?谢谢你的建议,N-Man

0 投票
1 回答
339 浏览

deployment - 为 POS 2009 安装 .Net 插件

我正在编写一个 WiX 项目来安装为 Microsoft POS 2009 构建的 .Net 插件。在项目开发过程中,您必须运行以下命令:

AddinUtil.exe -PipelineRoot:{POS 2009 的 Addins 文件夹的目录}

以便 POS 2009 能够识别您的插件。现在我已经准备好进行部署,我想知道在安装过程中这是如何完成的,以便用户在运行安装程序后不必这样做?

我只是在安装阶段从 Exec 命令调用 AddinUtil.exe,还是在 WiX 3 内部有一个可用的标签可以处理这个问题?我记得有几个例子,我看到其他人从 WiX 调用外部应用程序,我只是想知道这是否是这种情况下的最佳方法。

注意:我基于 POS 2009,但我认为这最终是一个一般的“.Net Addin 安装”问题。


我应该提到...我正在使用的 AddinUtil 是标准的 .Net 3.0/3.5 AddinUtil,它是存在于 %windir%\Microsoft.Net\Framework\v3.5\ 目录中的 .Net 框架的一部分。

0 投票
5 回答
11460 浏览

iis - 在 WiX 中,如何按名称选择 IIS 网站?

我想做的是向安装程序用户显示其服务器上的网站列表并允许他们选择一个(使用此处描述的方法:http ://www.cmcrossroads.com/content/view/13160/120/ ,现在似乎已损坏,请参见此处了解核心代码)。然后安装程序将在所选网站中创建一个虚拟目录。

但是,我的搜索似乎表明,在 WiX 中指定网站的唯一方法是通过 IP、端口和标头。要求这些对用户来说不是很友好,所以我留下了编写第二个自定义操作以从网站名称中获取这些详细信息的想法。

有没有更好的办法?

顺便说一句,这需要在 IIS6 和 IIS7 中工作,以防影响答案。

0 投票
4 回答
2417 浏览

installation - 我如何才能要求 WiX 中的两个可选组件中的至少一个?

我正在使用 WixUIFeatureTree 为用户提供他们想要安装我的应用程序的哪些组件的选项......我的一个功能中有两个可选功能,其中至少一个必须安装才能使程序工作。我不想强迫用户安装任何一个特定的,但我不知道如何强迫他们选择至少一个

这是我当前 WXS 的相关部分:

我猜我需要在序列的正确位置插入某种自定义操作,以确保选择安装其中一个或另一个,但不知道如何执行此操作,或者它是否正确。所有帮助表示赞赏!