问题标签 [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 回答
76 浏览

c# - wix 中的 Dot Net 框架先决条件检查无法正确检测 64 位机器

我正在为我的应用程序开发一个设置,我需要为它构建一个设置。我正在使用 wix 来构建设置,并且我需要验证是否安装了 dot net 框架。这是我以前的代码

这种情况在 32 位机器上运行良好,而在某些 64 位机器上,即使 dot net 框架已安装它显示此验证,它也不会检测到。

仅在未安装 dot net framework 时才需要显示我的条件。我需要支持 DotNetFramework 4 及更高版本。尤其是4.6.1也必须支持。

0 投票
1 回答
694 浏览

wix - WiX Bundle:安装 bundle 2.0.0 时,不会从程序和功能中删除 1.0.0 的补丁

有 3 个捆绑包,代码如下所示。1.0.0、1.0.0.1 和 2.0.0。

如果安装了 1.0.0、1.0.0.1 和 2.0.0,View Installed Updates 仍会将 1.0.0.1 列为已安装。它将保留在那里,直到卸载最后一个版本。

应用升级时,应从程序和功能和/或查看已安装的更新中删除所有以前的版本和补丁。与直接安装 MSI/MSP 而不是通过 Bundler 安装时发生的情况完全相同。

0 投票
1 回答
495 浏览

wix - WiX Heat工具生成的参考子目录

我正在使用 WiX Heat 获取目录,但我需要引用在安装程序的另一部分中获取的子目录之一。问题是 Heat 生成的子目录分配了随机的 Id,所以我不知道我需要引用的 Id

该子目录将始终位于我使用 Heat 收集的目录中

有没有办法强制 Heat 至少为我需要引用的文件夹使用一致的 Id,或者有没有办法找到Id一个Directory基于的Name

0 投票
2 回答
925 浏览

iis - 在使用 WiX 安装网站之前停止 AppPool

我正在尝试采用现有的 MSI 来安装网站并添加停止 AppPool 的过程,以便在安装更新时您不必记住在运行安装程序之前停止 AppPool。

下面列出了我设置的自定义操作

它们被安排在 msi 产品中,如下所示:

msi 被包裹在一个这样的包中:

当执行自定义操作时,我在 msi 日志中得到了这个

MSI (s) (94:A8) [14:43:48:833]:执行操作:StopIisAppPoolCMD

行动 14:43:48:StopIisAppPoolCMD。

动作开始时间 14:43:48:StopIisAppPoolCMD。

MSI (s) (94:A8) [14:43:48:834]:属性更改:添加 StopIisAppPool 属性。它的值是 '"C:\WINDOWS\SysNative\inetsrv\appcmd.exe" stop apppool /apppool.name:"MyWebAppPool"'。

操作于 14:43:48 结束:StopIisAppPoolCMD。返回值 1。

MSI (s) (94:A8) [14:43:48:834]:执行操作:StopIisAppPool

行动 14:43:48:StopIisAppPool。

行动开始时间 14:43:48:StopIisAppPool。

MSI (s) (94:2C) [14:43:48:837]:调用远程自定义操作。DLL:C:\WINDOWS\Installer\MSI2B0E.tmp,入口点:CAQuietExec64

CAQuietExec64:错误 0x80070057:无法获取命令行数据

CAQuietExec64:错误 0x80070057:无法获取命令行

CustomAction StopIisAppPool 返回实际错误代码 1603(请注意,如果翻译发生在沙箱内,这可能不是 100% 准确)

操作于 14:43:48 结束:StopIisAppPool。返回值 3。

行动于 14:43:48 结束:安装。返回值 3。

我觉得我的问题可能是因为我正在尝试做Execute='immediate'而不是deferred,但是如果我将自定义操作作为 运行deferred,那么它必须运行之后InstallInitialize停止 AppPool 以避免文件使用中的冲突为时已晚。

我认为可以运行,immediate因为 msi 包装在 WiX 包中,所以我认为它之前会以提升的权限运行,InstallInitialize因为我必须在 msi 安装程序启动之前输入管理员密码。

我已经考虑将这些操作放在捆绑包中单独的 msi 或 exe 包中,并在安装 web 文件的 msi 之前运行它,但我真的不想这样做,因为 web 应用程序池名称是从已经存在的 UI 中检索的msi,如果我可以避免它,我宁愿不必重做 UI 的处理方式。

有没有更简单的方法来解决这个问题?我错过了一些简单的东西吗?还是我真的需要重做 UI 并将这些操作拆分为单独的 exe 包或捆绑包内的 msi?如果是这种情况,我可能会说忘记它,并确保每个人都知道在安装任何新版本之前手动停止应用程序池。

0 投票
0 回答
56 浏览

wix - 每当新用户第一次运行我的应用程序时,我的应用程序就会“安装”

我有一个 Wix 3.9 安装设置。该应用程序是通过InstallScope属性安装的。每当我尝试以新用户身份运行该应用程序时,它都会开始安装我包含的一些驱动程序,并弹出一个安装对话框。10-15 秒后,对话框消失,一切正常。该对话框仅在非安装用户的任何用户第一次运行该应用程序时弹出。安装用户按预期操作。可能有人知道如何摆脱这个烦人的安装对话框吗?

0 投票
0 回答
502 浏览

wix - WiX Toolset: Wrap exe in msi

We have an exe that we would like to wrap in an MSI so that it can be deployed via GPO. One caveat is that it is highly preferred that the generated installer does not require user interaction (i.e. no final checkbox to launch the exe after install). For clarity, I'm doing this from OSX using the following Docker Container: https://github.com/suchja/wix-toolset

I have the following .wxs: https://pastebin.com/AeMfTzvd

I'm running the following commands: wix/candle.exe app/config.wxs wix/light.exe -sval -v -ext WixUtilExtension Mark43CAD.wixobj

Everything seems to compile correctly, but when I attempt to run the msi on a Windows machine I am getting the following error:

enter image description here

I can't seem to find anything useful when I tail the logs during the installation? Is there a simpler way to configure wix to allow me to deploy this exe as an msi?

Thanks so much for your help!

0 投票
1 回答
978 浏览

wix - 使用 WIX 工具集下载和复制文件

我正在为我们基于 WIX 的安装程序添加一项功能。这是我第一次使用 WIX,所以对我来说这一切都很新鲜。

我想要做的是允许用户在使用msiexec.

然后,安装程序将使用身份验证令牌进行 API 调用。如果身份验证失败,安装程序将终止。否则,安装程序将使用 API 下载文件并将其复制到安装目录(很可能位于 下Program Files)。

我已经设法将命令行参数作为 WIX 中的属性读取,并在 C# 中创建了一个 CustomAction 来处理身份验证/下载文件。

我正在努力的部分是让 CustomAction 将文件复制到安装位置,因为它没有写入该位置的权限。

我可以通过设置让它以提升的权限运行,execute="deffered"但这"impersonate=no会阻止我从session对象中读取属性。

另一种可能的选择是将文件保存到 CustomAction 中的临时位置(无需提升权限即可工作)并设置新属性。然后我可以使用CopyFile组件SourceProperty将该文件复制到目标位置。

但是,我无法弄清楚如何让 CustomAction 在CopyFile组件之前运行,因为在运行 CustomAction 之后才会设置该属性。它是像在安装的特定部分运行 CustomAction 一样简单before,还是还有更多?

0 投票
0 回答
192 浏览

wix - 通过 Wix Bootstrapper\Wix Toolset 下载文件

我在服务器中有一些文件,在安装过程中,这些文件应该会自动下载。我不想将这些文件与我的安装程序一起附加。它应该保存在服务器上并仅在安装期间下载。

是否有可能通过 wix burn\bootstrapper 下载文件?

或者是否可以使用 WiX 工具集下载文件?

0 投票
0 回答
303 浏览

wpf - 如果安装了防病毒软件,WPF 安装程序将失败

我有一个使用 WIX、WIX Custom Bootstrapper 和 Burn 创建的 WPF 安装程序。我使用 3.9 版本的 WIX 来创建和编译 WIX 文件。我尝试在已经安装了 AVG Antivirus 并且我的安装程序正确安装在其中的计算机上安装该安装程序。然后我将 WIX 更新到 3.11 版本并编译 WIX 源文件,然后构建 WPF 安装程序。现在,我尝试在已安装 AVG Antivirus 的同一台机器上安装我的安装程序。安装程序安装失败,出现如下异常,

错误 0x800700e8:无法等待子连接到管道。错误 0x800700e8:无法连接到提升的子进程。错误 0x800700e8:未能实际提升。错误 0x800700e8:无法提升。

我已禁用 AVG 防病毒软件并尝试安装使用 3.11 构建的安装程序。WPF 安装程序正确安装在该机器中。

任何人都建议我如何解决这个问题,任何帮助将不胜感激?

0 投票
1 回答
550 浏览

wix - 使用 WIX 3.9 及更高版本的自定义操作 RegisterComPlus 发生错误

在 Microsoft,我们长期以来一直使用 WIX 工具集版本 3.5.2519.0 来为我们的名为(System Center Service Manager aka SCSM)的产品构建安装程序和补丁程序。最近我们需要更新到 WIX Toolset 3.14.0.1703,因为这个版本支持 TLS1.2。

使用 WIX Toolset 3.14.0.1703 构建我们的项目很顺利,但是在安装它时,我收到以下错误:

然后我用所有 WIX 版本一个一个地构建了产品,结果如下:

使用 WIX ToolSet 版本 3.8 和更低版本构建的产品很好,安装程序工作正常。
但使用 ToolSet 3.9 及更高版本时,安装程​​序因错误而失败:执行自定义操作 RegisterComPlus 时发生错误

日志片段: +++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++ 动作开始时间 21:11:37:RegisterTypeLibraries。

MSI (s) (48:B0) [21:11:37:585]:执行操作:SelfRegModules

操作于 21:11:37 结束:RegisterTypeLibraries。返回值 0。

行动开始时间 21:11:37:SelfRegModules。

MSI (s) (48:B0) [21:11:37:588]:执行操作:RegisterComPlus

行动于 21:11:37 结束:SelfRegModules。返回值 1。

MSI (s) (48:B0) [21:11:37:589]: 注意: 1: 2205 2: 3: Complus

MSI (s) (48:B0) [21:11:37:589]: 注意: 1: 2228 2: 3: Complus 4: SELECT ComponentId, FileName, Component. Directory_, ExpType, Component. Action, Component. InstalledComplus,,ComponentFile哪里ComplusComponent_=ComponentComponentKeyPath= FileFile与 ( Action= 1 或Action= 2)

行动开始时间 21:11:37:RegisterComPlus。

MSI (s) (48:B0) [21:11:37:591]: 注意: 1: 2265 2: 3: -2147287035

MSI (s) (48:B0) [21:11:37:591]:机器策略值“DisableRollback”为 0

MSI (s) (48:B0) [21:11:37:592]: 注意: 1: 1402 2:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3:2

行动于 21:11:37 结束:RegisterComPlus。返回值 0。

MSI (s) (48:B0) [21:11:37:592]: 注意: 1: 1402 2:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3:2

MSI (s) (48:B0) [21:11:37:592]:此安装没有系统还原序列号。

MSI (s) (48:B0) [21:11:37:592]:解锁服务器

MSI (s) (48:B0) [21:11:37:602]:注:1:2717 2:

_Set_Rollback_RemoveCodeGroup.1CA03A32_06E0_4726_8E63_FEA4484D9D6F 调试:错误 2717:错误的操作条件或错误调用自定义操作“_Set_Rollback_RemoveCodeGroup.1CA03A32_06E0_4726_8E63_FEA4484D9D6F”。

MSI (s) (48:74) [21:11:37:622]:无法取消线程 720 上的 I/O。错误:1168

MSI (s) (48:74) [21:11:37:622]:无法取消线程 1244 上的 I/O。错误:1168

MSI (s) (48:74) [21:11:37:622]:无法取消线程 3392 上的 I/O。错误:1168

MSI (s) (48:74) [21:11:37:622]:无法取消线程 928 上的 I/O。错误:1168

MSI (s) (48:74) [21:11:37:622]:无法取消线程 680 上的 I/O。错误:1168

MSI (s) (48:74) [21:11:37:622]:无法取消线程 4528 上的 I/O。错误:1168

MSI (s) (48:74) [21:11:37:622]:无法取消线程 2156 上的 I/O。错误:1168

MSI (s) (48:74) [21:11:37:622]:无法取消线程 2316 上的 I/O。错误:1168

MSI (s) (48:74) [21:11:37:622]:无法取消线程 3980 上的 I/O。错误:1168

MSI (s) (48:74) [21:11:37:622]:无法取消线程 5172 上的 I/O。错误:1168

MSI (s) (48:74) [21:11:37:622]:无法取消线程 2724 上的 I/O。错误:1168

MSI (s) (48:B0) [21:11:37:622]:产品:Microsoft System Center Service Manager -- 安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码为 2717。参数为:_Set_Rollback_RemoveCodeGroup.1CA03A32_06E0_4726_8E63_FEA4484D9D6F, ,

安装程序在安装此软件包时遇到意外错误。这可能表明此软件包有问题。错误代码为 2717。参数为:_Set_Rollback_RemoveCodeGroup.1CA03A32_06E0_4726_8E63_FEA4484D9D6F,,操作于 21:11:37 结束:安装。返回值3。++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++

WIX Toolset 3.9 及更高版本是否有任何更改破坏了我的安装程序?有什么解决办法吗?

如果需要更多信息,请告诉我。

谢谢,拉吉夫