问题标签 [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.
visual-studio - 未解决在“捆绑:...”部分中对符号“WixBootstrapperApplication:WixNetFxExtension”的引用
我正在尝试创建一个 wix 引导程序配置。
我的 Bundle.wxs:
错误:
我已经在我的引导程序项目中添加了 WixNetFxExtension 作为参考。
wix - 仅在安装或卸载时执行自定义操作
我正在使用 WiX 3.10 制作安装程序。我最初的任务是将 Postgres 文件复制到目标系统,初始化集群,注册服务,启动它并在安装时恢复数据库,以及反向 - 停止服务,将其从系统中删除,并清除集群数据。我编写了两个 bat 文件,并添加了执行它们的自定义操作以及在各个地方描述的一些条件,但它们都不起作用。我尝试过使用和不使用 CDATA、Installed、INSTALLED 和其他一些变体,但它总是执行这两个操作。
这是我现在正在试验的 wix 文件。
bat 文件包含 dir > a.txt 和 dir > b.txt 所以我可以查看它们是否实际执行。这有点令人沮丧,我是不是误会了什么?
wix - 我可以在 HDPI 屏幕上对 WIX 安装程序的字体做任何事情吗
我正在使用 wix 3.10 为我的产品创建安装程序。当我在 HDPI 屏幕(Windows 10)上启动安装程序时,所有字体看起来都很模糊。我可以用它做点什么吗?
wix - 确定先前软件包版本的 WiX 错误
遇到版本号问题。
我们曾经使用 Installshield 作为我们的客户端安装程序。自从切换到 WiX 后,我们已经“修复”了一些问题,例如版本编号方案。我们曾经使用 xxx-y,但 WiX 不允许“-”作为版本号的一部分。
当我尝试使用“虚线”版本#更新较旧的已安装产品时,安装停止(甚至在它开始之前):
该错误似乎导致引擎不触发 OnDetectMsiFeature,但是,引擎似乎确实以某种方式知道这些功能:
更新:
我将版本号的问题跟踪到 dutil\fileutil.cpp。我将第 444 行的检查更改为:
soas 接受 '-' 作为版本分隔符。现在,新的引导程序加载,但在状态检测方面存在问题。虽然它“看到”了包和功能,但它“看到”所有这些都是“不存在的”。
所以,我的新问题是:
- 为什么旧包和选定的功能列表都标记为缺席?
- 我可以从中恢复吗?
wix - 如何升级包含已弃用组件的 MSI?
我们有一个案例,旧版本的产品包含新版本未附带的组件。我们遇到的问题有两个……首先,服务没有停止,导致强制重启。其次,文件没有被删除。
现在,我不确定这是否是由于旧的 installshield 构建的 msi 的创作,或者我在 wix 中可能没有正确执行的操作(在我们的 msi 周围使用自定义引导程序)。我可以毫无问题地升级当前版本的产品,所以我怀疑前者。
我想要实现的是一种解决方法(不反对使用自定义操作)来处理升级的情况,如果找到了 7.x 版本之前的产品,那么我会触发 CA 来停止这些服务并删除那些文件。我将如何着手实现这一目标?
.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 跳过 ==========
.net - 检查框架更新是否安装在 wix 项目中
对于我工作的软件公司,我使用框架 4 扩展了一个开源 IDE (SharpDevelop)。我使用 VS2015 并添加了 NuGet 包 Microsoft.Bcl.Async 以使用 async/await 关键字。
但有一个问题。如果在用户的 PC 上只安装了 framework 4.0(不是 4.5 或更高版本),需要安装修复 KB2468871。
wix 项目中有一种方法可以检测是否安装了修复 KB2468871?如果有办法,如果没有安装,我可以自动安装吗?
c# - WIX 升级后产品文件未删除
我们使用托管引导程序。
我们的捆绑包中有两种产品(我们称之为BundleName
) -ProductA
和ProductB
. 我们安装了这两种产品,它工作正常。
接下来我们更改 from to 的版本和from toBundleName
的1.0.0.0
MSI2.0.0.0
版本。ProductA
1.0.0.0
2.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
.
这是我们的配置:
有人可以解释一下我们错过了什么吗?
wix - 如何使用附加输入按钮自定义 WiX Burn 主题并在单击时打开其他页面?
我正在创建一个 wix 引导程序项目,它按顺序执行 2 个 msi 文件。我希望用户拥有允许用户选择要执行的 msi 文件的 UI(有些类似于功能选择 UI),因为我在安装页面上添加了一个按钮
现在我想当我点击FeatureButton
一个新页面时必须出现。有没有办法做到这一点?
windows - 使用 WiX 工具集设置 ProgramData 中现有文件夹和文件的权限
我继承了一个使用 WIX Toolset (3.10.3) 构建安装包的项目。应用程序下载共享数据并将其存储在c:\ProgramData\Vendor\ApplicationName
. 然而,这个路径不是在安装过程中创建的,而是在应用程序本身的执行过程中,每当第一次请求该路径时。
我现在发现了当多个 Windows 用户使用该应用程序时发生的权限相关问题。每当应用程序从后端下载新的数据文件时,当前的 windows 用户都会获得这些文件的“完全控制”权限。当其他人使用另一个 Windows 帐户登录时,他们只有这些文件的读取权限。当应用程序试图保持本地文件与后端同步时,这些混合权限会导致问题。
由于该应用程序不需要提升权限,因此我必须在安装过程中更正此问题。作为第一步,我现在确保该c:\ProgramData\Vendor\
文件夹是在安装过程中创建的,并且它使用<util:PermissionEx User="Everyone" GenericAll="yes" />
. 由于这些权限是继承的,它将解决所有用户进行全新安装的问题。
问题是权限仅由安装后创建的文件夹/文件继承。这意味着从先前版本升级的用户仍将保留具有混合权限的数据文件。因此,我需要确保所有现有文件夹和文件在安装期间都获得新权限。我该如何做到这一点?