问题标签 [wix3.7]

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 投票
0 回答
321 浏览

wix - Wix 补丁生成问题

我目前正在努力使用 WiX 3.7 为我们的产品构建一个工作补丁。

我们目前正处于产品开发阶段,我想在 RTM 之前验证构建补丁的过程,以便我知道原始安装程序具有所需的任何信息。

我尝试遵循 WiX 工具集网站上详述的补丁创建属性方法,我使用相同的 UpgradeCode 和 ProductCode 构建了我的两个安装程序,因为这是一个小更新 - 唯一的区别是一个名为 something_to_patch.txt 的文本文件。

当我生成补丁时,它正确地识别出 something_to_patch.txt 中的数据已经改变;msimsp.exe 的日志文件包含:

然后当我尝试安装补丁时,它似乎“安装”成功(它显示在“添加和删除程序更新”部分)并且日志表明安装成功,但是安装的文件没有更新。

通过补丁的详细日志输出,有大量信息(如有必要,我可以将其上传到某个地方),但对我来说突出的部分是行

所以它知道它有一些东西要写入该文件,但它似乎跳过它,因为哈希匹配。

我已经测试了“目标”MSI 和“原始”RTM MSI 文件,它们按预期安装了不同的文本文件。

有没有人有任何建议或额外的日志文件等有助于追踪问题。如有必要,我可以添加我的 wxs 文件,但它们与WiX 网站上的示例几乎相同。

问候, 安东尼

0 投票
2 回答
11630 浏览

wix - 在 WiX Bundle 中包含 .NET 安装程序未检测是否已安装

我在 WiX 3.7 上,我无法让简单的 <PackageGroupRef Id="NetFx40Web"/> 捆绑元素工作,因为它没有带来 Net FX 安装程序包,也没有将其嵌入到 setup.exe . 我已经在我的文件中为此创建了自己的包Bundle.wxs,但我仍然遇到问题。即使机器已经安装了 .NET,它似乎总是尝试安装 .NET 4。

我不太确定InstallConditionDetectCondition之间的区别。如果评估为真,我认为InstallCondition用于安装包,否则将其卸载。这如何与通常为Permanent=yes的事物一起工作,例如大多数先决条件?我认为DetectCondition几乎相反,它检查它是否已经在系统上,如果是,则不安装它。

下面是我Bundle.wxs在 Visual Studio WiX Bootstrapper 项目中的完整文件。我正在尝试查看 .NET 4.0 注册表项之外的注册表和范围。如果它存在,那么我不想安装 .NET 4。如果它不存在,则安装它。但是,这不起作用,它总是尝试安装 .NET。

引导程序安装程序日志:


更新,有解决方案。我使用内置的 WiX RegistrySearch 来确定它是否已安装。我必须在我的 Bundle 项目中引用 WixUtilExtension.dll。这是更新的 Bundle.wxs:

0 投票
2 回答
156 浏览

wix - WiX 安装程序生成一个可执行文件

我的问题很简单,我有一个 WiX 安装程序 .msi,我希望在成功安装后能够运行另一个安装的可执行文件。现在我需要这样做的原因是 WiX 安装程序安装了一个最近开发的应用程序,而我需要运行的可执行文件安装了另一个很久以前开发的应用程序。第二个可执行文件完全独立于第一次安装,并且在 .MSI 安装的应用程序时不必卸载,因此我不必担心回滚。我想知道是否有办法让 .msi 使用在完成后启动 .exe 的 CA?我知道如何让 .msi 启动它在安装后自行安装的应用程序,但我需要的可执行文件不包含在 .msi 中,这就是我的困惑/deleama 的来源。因此,如果有人能指出我正确的方向,那就太好了!

谢谢。

0 投票
1 回答
77 浏览

wix - 从 Visual Studio 过渡到 Wix 安装程序

我有 Visual Studio 安装程序在 Programfiles 中安装所有内容。我已经完成了转换并创建了新的 WIX 安装程序。单独的 Wix 安装程序可以正常工作,但是当我尝试升级旧版本时,我安装了两个应用程序。

Wix 安装在 LocalAppData 中,旧的安装程序安装在 Program 文件中。我已经修复了 peruser 和 per machine 问题,但新的安装程序仍然无法升级。

0 投票
2 回答
865 浏览

wix - Wix:在 HKCU\Software\Classes\Wow6432Node 下写入寄存器条目

我有一个超级简单的安装程序来测试安装程序是否可以在 HKCU\Software\Classes\Wow6432Node 下写入寄存器条目(msi 是目标 x86,我正在 Win7 x64 机器上测试它)。

问题是:它根本不想在 Wow6432Node 下写任何东西。以下是代码:

我什至尝试修改注册表部分,例如:

它仍然不起作用。

非常感谢您的帮助!

0 投票
3 回答
1821 浏览

wix - 在 WIX 中运行时为快捷方式动态分配名称

我想根据用户输入为快捷方式分配不同的名称。使用 WiX 工具集是否可行?我尝试将Name属性的值分配给Shortcut元素的属性,但它不起作用。

0 投票
1 回答
327 浏览

installation - 递归打开 WiX 引导程序

我正在使用 WiX 3.7 的 GenerateBootstrapper 来生成我在 Visual Studio 部署项目中使用过的引导程序。

Bundle.wxs目前是一个包含单个项目的链,引用我的MSI文件。

我修改了我的引导程序项目的 .wixproj 以包含各种组件的引导程序生成。

当我构建捆绑项目时,我看到了我的 MSI、EXE 和我的必备软件包的文件夹,如预期的那样。当我去执行我的引导程序 exe 时,我短暂地看到一个对话框,指示“安装程序正在初始化组件”,它被隐藏了,并且打开了一个具有相同内容的新窗口。不知何故,安装文件递归地调用自己,我无法确定原因。查看我的install.log,似乎执行了对我所有先决条件的检查,完成了 SQL Server,并确定不需要安装任何东西(对于我的开发机器来说是这样),然后setup.exe再次调用。这不会停止,直到我足够快地关闭设置窗口以中止下一个呼叫。它应该尝试再次调用 .msi 文件,而不是 setup.exe,但我不确定是什么导致了这种行为。

我有什么东西GenerateBootstapper导致了这个吗?我试图按照如何使用 Wix 创建 Windows Installer 文件中的示例进行操作?.

0 投票
1 回答
1910 浏览

wix - 如何确定 WIX Bootstrapper 中是否安装了 dotnet 和 VSTORuntime

我使用 wix 制作了我的加载项项目的设置文件。它有一些依赖项,如 dotNet 和 VSTO 运行时。所以我使用 Wix 引导程序来确认在安装它也可以工作的产品之前必须安装依赖项。但是我需要有条件地安装依赖项,比如如果安装了 dotNet 和 VSTO 运行时,那么不要寻找安装这些项目。我也尝试了注册表搜索,但没有成功,这是我的引导程序代码,告诉我需要在哪里修改代码。

我遇到的另一个问题是,我附加了mylicense.rft一些虚拟内容。但是安装程序在安装过程中没有显示许可证内容,请查看随附的快照 在此处输入图像描述

0 投票
1 回答
3056 浏览

wix - 如何在 D 上的 Wix 中创建目录:

使用 WiX 3.7,我想出了如何在根目录中创建文件夹。这个

创建一个文件夹C:\ReceivedFiles

我希望它D:\ReceivedFiles改为。

我该如何做到这一点?

我玩过这个DiskId属性,但它似乎没有做任何事情。

另外,我不想更改整个安装文件夹,安装的普通部分仍然在下面C:\Program Files (x86)。我只想在D:.

0 投票
2 回答
1258 浏览

c# - 如何从包含多个 MSI 的 wix 自定义引导程序包中安装/卸载单个 msi,例如安装项目的添加/删除功能?

我在 wix 包中有 2 个 msi 我正在使用 wix 3.7 的自定义引导程序。我的安装、卸载和取消命令完美运行。当我尝试使用以下命令提供从捆绑包中添加/删除 msi 的功能时:

它没有按预期工作。我正在使用下面的代码来检测包

全新安装后,我的 UI 显示添加/删除、删除、修复、重新安装以进行下次安装的选项,我可以从我的包中卸载单个 msi,但下次它不会检测到剩余的包。

如果我卸载 setup2.msi,它会显示添加/删除屏幕,但修改按钮被禁用,如果我卸载 setup1.msi,它会要求全新安装。