问题标签 [wix3.8]

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

wix - Wix 中的 CustomAction 未执行

所以我正在创建我的第一个 Wix 项目,我似乎在执行自定义操作时遇到了问题。我不确定它是否包含在 msi 中,我不太确定我做错了什么。以下是我的 Wix 文件:

最后一个片段包含我的自定义操作,我希望在所有文件都放入目录后在命令行上执行以下操作:

需要注意的一点是,exe 实际上来自上面定义的ComponentGroupRef 。不确定这是否是一个问题,但我想我会提到它。任何帮助,将不胜感激。

0 投票
1 回答
785 浏览

wix - 如果先安装 MSI,然后安装包含 MSI 的捆绑包,则有两个 ARP 条目

如果我安装第一个,为什么会得到两个 AddRemoveProgram 条目setup.msi,然后安装bundle.exe包含setup.msi. 这是我捆绑包中的链条。

有一个从usingsetup.msi中提取的硬编码ProductCode 。不应该检测到已经安装并跳过安装?bundle.exedark -xbundle.exesetup.msi

0 投票
2 回答
820 浏览

wix - WiX Bootstrapper 项目结构

我们有一个类似于 Microsoft Office 的产品。有很多共享库的几个不同的应用程序。我们正在尝试重构该产品的部署过程,因为目前我们正在使用多个单独的 MSI 包来独立安装每个应用程序。在此过程中,我们希望使用 WiX 引导程序来捆绑这些 MSI 文件并仅创建一个设置应用程序。目前所有的共享库都包含在每个 MSI 包中,这会占用大量空间。

我们基本上有两种选择来实现这一点:

  • 创建一个 WiX 设置 (MSI) 项目;包括所有产品作为单独的功能。在这种情况下,处理共享库非常简单。但在我看来,这个项目的结构变得太大了。
  • 创建多个 MSI 包。每个只有一个产品,并将它们捆绑到引导程序。在我看来,这种方式在文件和组件方面更加灵活,排列更加清晰。但是共享库如何在这里工作?它们不应包含在每个 MSI 文件中。

在 WiX 引导程序项目中首选哪种方法?

0 投票
0 回答
358 浏览

wix - WIX:RemoveRegistryKey 的一个模棱两可的错误 LGHT0204,但 RemoveRegistryValue 没有

这工作正常:

但是这个:

导致错误:

为什么第一种情况不会引发相同的错误?
版本 3.8.1128.0

0 投票
1 回答
4158 浏览

wix - WiX 刻录引导程序本地化

我有一个自定义刻录引导程序应用程序,其本地化为德语(BurnUI_de-DE.wxl)和英语(BURNUI_en-US.wxl)。目前刻录会自动以英文启动。我不知道如何在运行时更改 UI 语言。UI 部分采用 MVVM 模式设计,并具有语言选择下拉菜单。我有一个变量来检测这样的 systemlanguageID

一切就绪。现在,我如何使用这个变量并指示刻录引擎更改语言?此外,本地化引导程序的任何最佳实践?

0 投票
1 回答
1399 浏览

wix - 是否可以为每个用户 MSI 发布快捷方式和 ProgId?

我有一个 permachine MSI 安装程序,我正在将其转换为每用户安装程序,它将文件安装到 LocalAppDataFolder。

为了摆脱 ICE38 警告,我添加了一个注册表作为键路径。问题出在我的一个组件中,我有一个广告快捷方式和 ProgId。

我现在得到:

  • ICE19 - “设置”宣传组件:“CMP_Rapid”。由于 KeyPath 类型不允许此组件,因此无法发布此组件
  • ICE19 - 快捷方式:“SHC_RunConfigExe”宣传组件:“CMP_Rapid”。由于 KeyPath 类型不允许该组件,因此无法通告该组件。
  • ICE50 - 组件“CMP_Rapid”有一个广告快捷方式,但找不到 KeyPath。

安装到 LocalAppDataFolder 时,是否有在每个用户安装中做广告?我对广告不是很熟悉。在快捷方式上我使用它是因为我喜欢它提供的修复功能。在 progId 上我使用它是因为它会在安装后自动更新相应的图标。

我需要在 XP 和 Vista 上安装它,这样我才能使用 Windows 7 解决方案:ProgramFilesFolder 重定向。

以下是生成错误的组件:

0 投票
1 回答
279 浏览

wix - 在 WiX 3.8 中 ActionText 表对应什么

我在 WiX 中询问 ActionText 表的对应关系,在 MSDN 页面链接中引用。或者更确切地说,我们如何在系统事件发生时提供提示文本,例如安装程序正在移动文件或写入注册表?

0 投票
1 回答
1253 浏览

wix - 如何维护 WIX 设置库中的文件引用完整性

我正在使用 Wix Toolset 3.8 Visual Studio 插件。我创建了一个 WIX 设置库,它封装了一些将由各种服务部署项目使用的通用组件。此库包含对需要打包到每个部署中的多个解决方案文件的引用。

具有解决方案文件参考的通用 WIX 设置库项目

这些依赖项以几种不同的方式在我的 wix 库片段中使用。例如:

无论我将文件作为链接添加到项目中还是将它们复制到项目目录中,以及我是在项目目录中引用它们还是使用它们原始位置的相对路径,WIX 设置库都构建得很好。当我将片段包含在我的 WIX 设置项目中以进行服务部署时,问题就出现了。

直接在安装项目中包含每个解决方案文件是可耻的。

安装项目在文件夹结构中的相对深度不同,因此相对路径不会指向与从 WIX 库引用时相同的位置。当我从 WIX 库中引用操作或功能时,我收到错误,例如The system cannot fine the file '.\Dependency1.dll'XML 正在按原样读取并从安装项目位置而不是库项目位置引用,因此相对目录是错误的。我可以将 WIX 库中的相对路径设置为使用它的安装项目应该使用的路径,或者我也可以将解决方案文件复制到安装项目目录中,但是当然,这完全违背了使用通用 WIX 库。还有其他服务部署项目需要使用这个库。

所以问题是,我如何引用 WIX 库中的解决方案文件,以供使用它的安装项目使用,而不管安装项目所在的目录如何?

0 投票
1 回答
2882 浏览

visual-studio-2012 - WIX 生成多语言安装程序

我是 WIX 新手,我正在使用 Wix 3.8 VS 2012。我设法使用这个神奇的工具将 .msi 生成到 .exe。

从本教程: http: //max.zamorsky.name/node/78,我设法将安装程序更改为French. 我想制作一个多语言安装程序,安装程序可以检测系统语言并继续安装。

我试图理解这个链接: http: //windows-installer-xml-wix-toolset.687559.n2.nabble.com/Localized-bundle-Picking-up-the-right-files-td7265208.html但我不能不明白。

请指导我如何制作这种类型的安装程序?需要你的帮助&谢谢。

捆绑包.WXS

0 投票
2 回答
2873 浏览

wix - 是否有一个变量我可以查询以了解是否在 FeaturesDlg 中选择了要安装的功能

我正在使用与 WixUI_Advanced 的自定义偏差,它使用 FeaturesDlg 来选择要安装的组件。其中一个组件需要自定义操作才能安装,但如果我不安装该功能,我不想运行该自定义操作。是否有某种方法可以查询安装程序会话或其他内容并为我的自定义操作构建条件,以便仅在选择此功能时触发?

编辑:我应该澄清一下,我正在寻找可以在 .wxs 中使用的语言来确定是否选择了该功能。像这样的东西,只有我没有编造的真实代码:

我知道此信息在运行时必须存在于会话中,否则安装程序将无法安装正确的功能,但我找不到任何对引用此会话信息的 WIX 语言的引用。我无法更改自定义操作本身的代码,因此我需要在 WIX 标记中测试此条件。