问题标签 [wix2]

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

windows-services - 使用 WiX (2.0) 安装多文件 NT 服务

如何在 WiX 中安装带有一些附加文件的服务,并定义什么文件是实际的服务 EXE 文件?

场景:我有一个服务,它只是一个 EXE 文件,并使用以下代码将其安装为 WiX 中的 Windows NT 服务:

我有一个功能,然后可以安装并选择性地启动此服务。

现在,我的问题是 - 现在我的服务已经增长,单个 EXE 不再是单个 EXE - 它是多个文件、EXE、DLL 和一些支持文件。

但是,我现在该如何安装呢?

我试图拥有一个包含我所有文件的组件

首先,我尝试将 ServiceInstall 和 ServiceControl 标签添加到该组件中:

但随后我的“Framework.dll”被设置为正在创建的服务的源路径............

所以我想我会创建第二个组件来实际安装服务,使用 ServiceInstall,我只是使用 FileRef 引用该服务 EXE 文件——但这似乎不存在(至少在 Wix2 中)。

那么 - 一个可怜的 WiX 作者必须做些什么来安装所有必要的文件,并且仍然让 NT 服务安装来选择正确的 EXE 文件(不仅仅是组件文件列表中的任意文件)?

马克

0 投票
1 回答
923 浏览

wix - 如何使用 WIX 2.0 创建自定义操作项目

我已经安装了 WIX 2.0(和 Votive)。我需要使用自定义操作项目创建用户定义的自定义操作。我在安装 WIX 3.0 时在 VS2008 中找到了自定义操作项目模板。现在,我在带有 WIX 2.0 的 VS2005 中找不到任何模板。

谁能告诉我如何创建一个自定义动作项目(带有一些自定义动作的类)..像这样

我认为 Microsoft.WindowsInstaller 和 Microsoft.Deployment.WindowsInstaller 是创建此类方法所需的参考(不确定),但我无法在我的机器中找到它们。


通过引用“Microsoft.WindowsInstaller”dll,我设法创建了一个自定义操作项目(只是一个具有一个类和自定义操作方法的类库)。但是在执行该dll时面临问题..

该dll中有一个名为“InstallItem2”的方法标记为[CustomAction] ..但面临错误:

此 Windows Installer 程序包存在问题。无法运行完成此安装所需的 DLL(...)

知道为什么会出现这个错误吗?

0 投票
1 回答
1130 浏览

wix - WiX MultiString 注册表项

我尝试将兼容性助手的注册表项添加到这样的 wix 设置中:

但是在安装时不会生成任何密钥。我错过了什么或做错了什么吗?我从这个问题和 wix 文档中得到了我正在做的事情的详细信息。

更新:我认为语法有点不同,因为我指出的问题使用了不同版本的 WiX。我使用的语法是 WiX 2 唯一接受的语法,而且这个 wix 文件构建得很好——它只是不会生成新的注册表项。


更新:我误诊了问题;wix 脚本正常工作,但将值放在Wow6432bit注册表的节点中,因为包含组件没有属性Win64="yes"

0 投票
1 回答
1152 浏览

wix - 从 Wix 2 迁移到 Wix 3:重复符号

我对 WiX 完全陌生,所以我使用 WiX 的第一个任务当然是将现有的大型安装程序从 WiX 2 迁移到 WiX 3。我有很多皱纹,其中大部分都已整理,但我将不胜感激对于以下轻微错误的一些建议。由于我是 WiX 的新手,我想列出我的整个过程:

要创建 WiX 库:

要生成主 MSI:

最后一条命令给出了几十个错误,但它们都采用以下形式

我有 grep 和 re-greped,但唯一的参考如下:

在 LicenseAgreementDlg.wxs 中:

在 wixui_company.wxs

给出错误的是 DialogRef 行。

这些都是从 main.wxs 中的 wixui_company.wixlib 引用的:

FWIW,如果我将 ref 更改为 WixUI 或将 ref 更改为 LicenseAgreementDlg,重复错误就会消失,但我会得到符号未找到链接错误。我使用 WixCop 迁移了原始的 wxs 文件,但在 WiX 2 下它们都按原样工作。我猜这与将 WiXUI 放在 WiX 3 中自己的命名空间中的举动有关,但坦率地说,我什至不知道该尝试什么。

关于事情哪里出了问题的任何想法?

谢谢,

亚当

0 投票
3 回答
297 浏览

wix - 是否有用于安装 MMC 管理单元/扩展的 WIX 扩展?

似乎以前在 Wix2 中有一个 MMC 扩展,建议 xmlns http://schemas.microsoft.com/wix/MmcExtension - 尝试读取此 URL 当前会导致错误页面。

我似乎无法找到 Wix3.6 的等价物,这是故意(重新)移动,还是只是丢失了?

0 投票
1 回答
934 浏览

c# - WiX dll嵌入

我正在尝试将 .dll 嵌入到 wix 安装程序中,该安装程序在安装期间由其他 dll 使用,但不会安装到客户的系统上。

我目前有

但即使我取出另一个 .dll - WiX 拒绝承认 AutomationUtils 的存在 .. 即使它构建正常(但是当你尝试运行它时会摔倒)。

0 投票
1 回答
292 浏览

wix - WiX:删除现有产品 + ADDLOCAL

我正在使用 Wix 2。我正在使用RemoveExistingProducts,但想保留以前安装的功能。此外,我想ADDLOCAL通过命令行给出的参数添加新功能。但是,根据这篇文章 ADDLOCAL确实设置了Preselected标志。

因此MigrateFeatureStates不开火:

有没有可能同时使用它们?

0 投票
1 回答
80 浏览

wix - 获取属性时出错

所以..我有这个 CA

<CustomAction Id="InstallSetProp" Property="CustomActionData" Value="<some other data that's formatted exactly the same> /webconftmploc=&quot;[WEBCONFIGTMPLOC]&quot;" />

但是,当调用此 CA 时,会显示一个消息框,显示“错误获取属性”,这是虚假的,因为该属性已正确设置并且稍后可以访问。(除了搞乱我完全自动化安装的尝试之外什么都不做)我正在通过一个引导程序运行 .msi,该引导程序会切换/qr以帮助解决这个问题。

/webconftmploc=&quot;[WEBCONFIGTMPLOC]&quot;删除时未显示消息框错误,因为记录[WEBCONFIGTMPLOC]是绝对文件路径或“未设置”,我想知道是否有任何特殊原因导致此行为发生。

但是,当然,我对抑制或修复此操作的任何可能方式更感兴趣。

0 投票
1 回答
322 浏览

wix - 在 WIX 安装序列中动态更改 CA

我发现根据我在安装程序中设置的属性来决定我在安装的某些点调用哪些自定义操作非常有用。

例如; 如果我想使用单独的 DLL 来连接不同版本的 SQL(具体来说是 SSRS 2005/2008R2)。

假设识别我应该运行哪个 CA 的操作(通过找出安装程序指向的 SSRS 版本)以“立即”执行,并且可能执行或不执行的 CA 取决于此结果并被“延迟”

如何在安装期间动态更改在安装的某些部分执行的延迟 CA?.. 这甚至可能吗?

(((首选 WiX 2.0,但可以接受更高版本的答案))

0 投票
1 回答
1843 浏览

wix - 在卸载过程中如何有条件地删除文件?

我有这个 WiX 片段:

<Directory>在程序存储数据的应用程序数据下的目录的适当元素中。然而两者

删除文件夹,因此条件不起作用。我也尝试过这种情况:

结果相同。

将参数传递给 msiexec 以在卸载期间更改行为的正确方法是什么?似乎参数只是被忽略了。