问题标签 [wix3.10]

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

visual-studio - 未解决在“捆绑:...”部分中对符号“WixBootstrapperApplication:WixNetFxExtension”的引用

我正在尝试创建一个 wix 引导程序配置。

我的 Bundle.wxs:

错误:

我已经在我的引导程序项目中添加了 WixNetFxExtension 作为参考。

0 投票
1 回答
4565 浏览

wix - 仅在安装或卸载时执行自定义操作

我正在使用 WiX 3.10 制作安装程序。我最初的任务是将 Postgres 文件复制到目标系统,初始化集群,注册服务,启动它并在安装时恢复数据库,以及反向 - 停止服务,将其从系统中删除,并清除集群数据。我编写了两个 bat 文件,并添加了执行它们的自定义操作以及在各个地方描述的一些条件,但它们都不起作用。我尝试过使用和不使用 CDATA、Installed、INSTALLED 和其他一些变体,但它总是执行这两个操作。

这是我现在正在试验的 wix 文件。


bat 文件包含 dir > a.txt 和 dir > b.txt 所以我可以查看它们是否实际执行。这有点令人沮丧,我是不是误会了什么?

0 投票
0 回答
65 浏览

wix - 我可以在 HDPI 屏幕上对 WIX 安装程序的字体做任何事情吗

我正在使用 wix 3.10 为我的产品创建安装程序。当我在 HDPI 屏幕(Windows 10)上启动安装程序时,所有字体看起来都很模糊。我可以用它做点什么吗?

0 投票
1 回答
375 浏览

wix - 确定先前软件包版本的 WiX 错误

遇到版本号问题。

我们曾经使用 Installshield 作为我们的客户端安装程序。自从切换到 WiX 后,我们已经“修复”了一些问题,例如版本编号方案。我们曾经使用 xxx-y,但 WiX 不允许“-”作为版本号的一部分。

当我尝试使用“虚线”版本#更新较旧的已安装产品时,安装停止(甚至在它开始之前):

该错误似乎导致引擎不触发 OnDetectMsiFeature,但是,引擎似乎确实以某种方式知道这些功能:

更新

我将版本号的问题跟踪到 dutil\fileutil.cpp。我将第 444 行的检查更改为:

soas 接受 '-' 作为版本分隔符。现在,新的引导程序加载,但在状态检测方面存在问题。虽然它“看到”了包和功能,但它“看到”所有这些都是“不存在的”。

所以,我的新问题是:

  1. 为什么旧包和选定的功能列表都标记为缺席?
  2. 我可以从中恢复吗?
0 投票
0 回答
46 浏览

wix - 如何升级包含已弃用组件的 MSI?

我们有一个案例,旧版本的产品包含新版本未附带的组件。我们遇到的问题有两个……首先,服务没有停止,导致强制重启。其次,文件没有被删除。

现在,我不确定这是否是由于旧的 installshield 构建的 msi 的创作,或者我在 wix 中可能没有正确执行的操作(在我们的 msi 周围使用自定义引导程序)。我可以毫无问题地升级当前版本的产品,所以我怀疑前者。

我想要实现的是一种解决方法(不反对使用自定义操作)来处理升级的情况,如果找到了 7.x 版本之前的产品,那么我会触发 CA 来停止这些服务并删除那些文件。我将如何着手实现这一目标?

0 投票
1 回答
821 浏览

.net - Wix 错误代码 319(-out 参数)

我正在构建一个 Web 应用程序安装程序 (.Net)。我的 Wix 版本是 3.10,我使用的是 VS2013。

我确实看到一些人之前也遇到过这个问题,但他们的回答都没有帮助我。

我尝试完成这些步骤,在此之前我有另一个退出代码 9009,但我无法绕过这个 319 错误。

在构建事件选项卡上,我有这个“预构建事件命令行”。我有这个代码:

错误消息非常简单,看起来我缺少-o 或-out 的路径。我没有-o,所以它必须是-out。但我确实有一条路。我尝试了很多不同的路径,文件夹路径,文件路径,正斜杠,反斜杠,双反斜杠,有变量,没有变量,重写了路径,因为我看到双引号看起来很奇怪。没有任何帮助。我看到了一些与反斜杠和引号相关的答案,转义,我认为我没有这个问题。

请指教。

谢谢

更新

我像在视频中一样使用 sysdm.cpl 来定义“dir”的变量。

它们看起来像这样:

变量名:vm4heat

变量值:c:\Work\Projects\ToWix\vmUpgraded\

(这是解决方案的位置,其中有网络应用程序)

在“预构建事件命令行”中,我可以看到:

宏:ProjectDir

值:c:\Work\Projects\ToWix\vmUpgraded\VM.Wix

(这是解决方案中 Wix 项目的位置)

我在 sysdm.cpl 中找到的 WIX 变量

变量名:WIX

变量值:C:\Program Files (x86)\WiX Toolset v3.10\

更新 2

------ 构建开始:项目:VM.Wix,配置:Release x86 ------ "c:\Program Files (x86)\WiX Toolset v3.10\bin\heat.exe" dir "c :\Work\Projects\ToWix\vmUpgraded\" -cg vm4heat -gg -scom -sreg -sfrag -srd -out "c:\Work\Projects\ToWix\vmUpgraded\VM.Wix\Frags.wxs" heat.exe( 0,0):错误 HEAT0319:“-out”或“-o”参数必须指定文件路径。C:\Program Files (x86)\MSBuild\Microsoft\WiX\v3.x\wix2010.targets(816,5): error MSB3073: The command ""c:\Program Files (x86)\WiX Toolset v3.10\ bin\heat.exe" 目录 "c:\Work\Projects\ToWix\vmUpgraded\" -cg vm4heat -gg -scom -sreg -sfrag -srd -out "c:\Work\Projects\ToWix\vmUpgraded\VM.Wix \Frags.wxs"" 以代码 319 退出。完成构建项目 "VM.Wix.wixproj" -- 失败。

========== 构建:0 成功或最新,1 失败,0 跳过 ==========

0 投票
1 回答
76 浏览

.net - 检查框架更新是否安装在 wix 项目中

对于我工作的软件公司,我使用框架 4 扩展了一个开源 IDE (SharpDevelop)。我使用 VS2015 并添加了 NuGet 包 Microsoft.Bcl.Async 以使用 async/await 关键字。

但有一个问题。如果在用户的 PC 上只安装了 framework 4.0(不是 4.5 或更高版本),需要安装修复 KB2468871。

wix 项目中有一种方法可以检测是否安装了修复 KB2468871?如果有办法,如果没有安装,我可以自动安装吗?

0 投票
1 回答
88 浏览

c# - WIX 升级后产品文件未删除

我们使用托管引导程序。

我们的捆绑包中有两种产品(我们称之为BundleName) -ProductAProductB. 我们安装了这两种产品,它工作正常。

接下来我们更改 from to 的版本和from toBundleName1.0.0.0MSI2.0.0.0版本。ProductA1.0.0.02.0.0.0

执行升级。BundleName 1.0.0.0它成功完成,但在(应卸载的以前版本的捆绑包)的日志中,我们有:

尽管如此,它工作正常。

当我们删除升级的2.0.0.0 BundleName. 捆绑包成功删除它并且日志很清晰,但它不会删除ProductA.

我们在日志中注意到的另一件事2.0.0.0也有点奇怪:

Planned package: ProductA, state: Present, default requested: Present, ba requested: Present, execute: **MinorUpgrade**, rollback: None, cache: Yes, uncache: Yes, dependency: Register

我们更改了第一个版本号,所以应该MajorUpgrade不是MinorUpgrade.

这是我们的配置:

有人可以解释一下我们错过了什么吗?

0 投票
1 回答
740 浏览

wix - 如何使用附加输入按钮自定义 WiX Burn 主题并在单击时打开其他页面?

我正在创建一个 wix 引导程序项目,它按顺序执行 2 个 msi 文件。我希望用户拥有允许用户选择要执行的 msi 文件的 UI(有些类似于功能选择 UI),因为我在安装页面上添加了一个按钮

现在我想当我点击FeatureButton一个新页面时必须出现。有没有办法做到这一点?

0 投票
1 回答
3380 浏览

windows - 使用 WiX 工具集设置 ProgramData 中现有文件夹和文件的权限

我继承了一个使用 WIX Toolset (3.10.3) 构建安装包的项目。应用程序下载共享数据并将其存储在c:\ProgramData\Vendor\ApplicationName. 然而,这个路径不是在安装过程中创建的,而是在应用程序本身的执行过程中,每当第一次请求该路径时。

我现在发现了当多个 Windows 用户使用该应用程序时发生的权限相关问题。每当应用程序从后端下载新的数据文件时,当前的 windows 用户都会获得这些文件的“完全控制”权限。当其他人使用另一个 Windows 帐户登录时,他们只有这些文件的读取权限。当应用程序试图保持本地文件与后端同步时,这些混合权限会导致问题。

由于该应用程序不需要提升权限,因此我必须在安装过程中更正此问题。作为第一步,我现在确保该c:\ProgramData\Vendor\文件夹是在安装过程中创建的,并且它使用<util:PermissionEx User="Everyone" GenericAll="yes" />. 由于这些权限是继承的,它将解决所有用户进行全新安装的问题。

问题是权限仅由安装后创建的文件夹/文件继承。这意味着从先前版本升级的用户仍将保留具有混合权限的数据文件。因此,我需要确保所有现有文件夹和文件在安装期间都获得新权限。我该如何做到这一点?