问题标签 [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 投票
2 回答
2140 浏览

wix - 在我的烧录引导程序中打包 .Net 可再发行组件

我正在尝试按照此页面上的说明将可再发行的 .Net 4.5.2 打包到我的刻录应用程序中。

但它无法在临时刻录位置找到文件。

根据日志烧录尝试在这里找到文件:

但该文件实际上最终在一个临时文件夹中

例如。

说明说要这样做:

如何让 Burn 在 .net 安装程序的正确位置查找?

0 投票
2 回答
2266 浏览

batch-file - 在 Wix 中安装 msi 后自动运行 .bat 文件

在 Wix 中安装 .msi 后,我需要运行一个 .bat 文件。我从 Wix 安装项目创建了这个 .msi。

在 .bat 文件中,我编写了脚本来编辑 etc/hosts 文件并根据我的应用程序需要将一些字体安装到 Windows 机器中。

请帮我解决我的问题。谢谢。

0 投票
1 回答
389 浏览

sql-server - WiX 工具集 - 如何确定 SQL Server 数据路径

我尝试了几种方法。这是我最近的尝试,它不起作用,但应该有助于说明我想要做什么。

注意:我对 GetSQLServerInstalledInstance Id 的假设是它将返回一个实例。

我的目标是找到安装在机器上的 SQL Server 实例的 DATA 目录路径,该机器也将安装我的公司产品。

最后,我正在寻找包含此路径的 SQL_SERVER_FILE_PATH 属性。(例如 C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA)

同样重要的是,调用是按顺序排列的,后续调用可以包含从先前调用中派生的信息。

我对 WiX 还是很陌生,但是如果 SetProperty 元素允许 RegistrySearch 子元素设置它的值,我可以想象如何很容易地做到这一点。这是否可以通过一系列 CustomAction 来处理,该序列的行为类似于允许 RegistrySearch 子元素设置其值的 SetProperty 元素?

谢谢

0 投票
2 回答
1500 浏览

wix - Wix 工具集安装 C++ 2010 Redistributable

我可以通过 Wix 工具集将 Microsoft Visual C++ 2010 可再发行组件的安装与我的安装包集成在一起吗?

我使用自定义操作尝试了此操作,但如果正在进行另一个安装,则不会安装。有人会对如何做到这一点有任何建议吗?

另外,还有一个问题:我可以在我正在创建的这个 MSI 安装程序中调用一个 MSI 安装程序吗?

0 投票
0 回答
919 浏览

wix - 无法让 Wix heat.exe 工作

我目前正在将 wix 与 Visual Studio 2013 结合使用。芽有一些东西我似乎没有开始工作。我正在构建一个安装程序(.MSI),这意味着我需要向其中添加文件,当然我不想手动完成,所以我正在尝试使用 heat.exe,因为到目前为止,它还没有成功。

我尝试了以下方法:我创建了一个指向文件位置的系统变量。我将该系统变量放入命令中,如 Wix 文档中所述:

我在预构建命令行中插入了这个命令,我也选择了抑制 ICE 验证。当我构建项目时它返回错误 9009,我无法弄清楚问题的原因或问题,所以我按照 youtube 上的教程进行操作。

在该教程中,使用了另一个命令:

在视频中,它被简化为:

当我使用这些更改构建项目时,它返回两个错误:

  1. startindex 不允许大于字符数组的长度。
  2. 命令“commando ...”以代码 1 退出。

第一个错误对我来说是个谜,第二个错误有大量可能导致此错误的潜在问题。

我真的很挣扎,我对 Wix 的了解几乎是 0,因为我是第一次使用它,而且我的程序技能远远不足以自己解决它。

链接到视频的人有兴趣。

提前致谢。

0 投票
1 回答
318 浏览

c# - 使用 c#(DTF) 中的产品代码卸载 MSI 时遇到的问题

我正在创建一个 CustomBA,它将替换现有的安装屏蔽 Bootstrapper(我真的不知道它叫什么)。

我们正在安装与 install shield 使用相同数量的 MSI,所以这没有问题。ARP 中的所有 MSI 条目都被删除,因为我们正在使 MSI 的 Visible="no"。

ARP 中只有 Custom BA 条目和 Install shield Bootstrapper 条目可用,两者具有相同的名称。

因此,经过一番研究,我了解到 Windows Installer XML (WiX) 将 Microsoft.Deployment.WindowsInstaller 互操作库作为部署工具基础 (DTF) 的一部分提供,可用于卸载 MSI。

我正在使用以下代码卸载 MSI。

我面临的问题如下所述

  1. 首先,我必须以管理员身份运行 CustomBA 来卸载现有的 MSI,否则它会抛出错误“错误 1730。您必须是管理员才能删除此应用程序。”。有没有办法在没有管理员的情况下运行 CustomBA 并卸载 MSI。

    1. 卸载时(当我以管理员身份运行 customBA 时),上面提到的代码也删除了它的链包,我不希望它这样做。

    2. 运行卸载代码后,它不会从 ARP 中删除 MSI 条目。

我找到了这些链接,但我不知道它是否相关: https ://stackoverflow.com/questions/17523974/how-to-uninstall-msi-using-its-product-code-in-c-sharp 检查成功卸载

0 投票
1 回答
492 浏览

wix - Wix 不包含 .MSI 中的任何文件

我正在尝试在我的 WIX 安装程序中添加文件,但目前它没有这样做。我盯着它看了好几个小时,我只是看不出可能是什么问题。引用似乎和目标位置一样工作正常。安装程序运行良好,直到它当然需要安装文件。

这也是我使用热量做出的部分参考资料:

ComponentGroupRef 和它们连接的 Fragment 当前尚未使用,并且对程序没有影响(本示例中忽略了 Fragments)

谁能看到我可能做错了什么或遗漏了什么?提前致谢,

0 投票
1 回答
71 浏览

wix - WiX Web 安装程序和独立安装程序都应该出现在添加/删除程序中吗?

我们有两个使用我们自己的 BA 的 WiX 安装程序。一个安装程序从 Web 获取所有包,而另一个安装程序从 exe 获取所有包。我们称它们为“Web”和“Full”安装程序。

我们有一种情况,用户可能会从 Web 安装程序安装一个包,而从完整安装程序安装另一个包。它可能不会经常发生,但它可能会发生。当用户这样做时,我们在“添加/删除程序”控制面板中有两个条目。由于我们没有以不同的方式命名安装程序,因此安装程序似乎安装了两次。

我的问题是,如果使用 WiX 创建的两个安装程序之间的唯一区别是获取软件包的方式,那么它不应该只在添加/删除程序中出现一次吗?我是否需要在某处设置代码以说明它是同一个安装程序?

我想我们可以将它们命名为不同的名称,以便“Web”和“Full”安装程序出现在“添加/删除程序”中,但是当您运行其中任何一个时,两个软件包都会显示为卸载,因为两个安装程序都知道它们。它不像网络安装程序只显示通过它安装的包和通过它安装的完整包。

任何意见表示赞赏。

0 投票
1 回答
108 浏览

build - 使用 NANT XmlPoke 更改 Wix 产品版本号

我最近遇到了这个问题 - 当我尝试使用NANT XMLPOKE任务替换 Wix 产品版本号时,它返回以下错误消息“未找到匹配节点”。

最初我认为这是我编写的 XPATH 语句的问题。所以我不断尝试使用不同的 XPATH(如 \Wix),并且不断收到相同的消息。

从博客中了解到,这是由于使用 WiX 元素的命名空间定义而发生的。请在下面找到解决方案,以防有人找不到该博客。

0 投票
1 回答
1651 浏览

wix - WIX - 在已安装文件夹中创建卸载快捷方式

我正在使用 Wix 3.9 和 Wix-edit 0.7.5/Notepad++ 为我的应用程序创建 MSI 安装程序。我想在已安装的文件夹中创建一个卸载快捷方式。例如:

我尝试了一些事情,但在所有情况下,当我通过该链接卸载软件时,程序文件夹C:\MySoftware都不会被删除。以其他方式卸载按预期工作。

首先,我尝试将其创建为<Directory>标签内的组件。在我看来有点 hacky,因为我必须添加<CreateFolder>

我也尝试用 替换<CreateFolder/><RemoveFolder Id="MYINSTALLDIR" On="uninstall" />结果相同。

另一个尝试:

在这里,除了具有相同的结果外,我在构建时收到警告:file.wxs(31) : warning LGHT1076 : ICE57: Component 'StartMenuShortcuts' has both per-user and per-machine data with an HKCU Registry KeyPath.

如何创建可以在不影响卸载行为的情况下使用的快捷方式?我不知道它是否有区别,但我需要它在没有管理员权限的情况下工作(我正在使用<Package ... InstallScope="perUser" InstallPrivileges="limited">)。

我知道我可以创建一个 .lnk 文件并将其添加到项目中,但我不想这样做,因为那样我就不得不担心在每个项目上更新它的 GUID。