wix3 相关问题

有关使用Windows Installer XML,版本3进行部署的问题。

WiX:在 WiX 4 中实施重大升级,以使用 WiX 3 构建安装程序

我在 WiX v3.11 安装程序中进行了重大升级,遵循本教程并学习了很多内容(仅限德语)。 但现在 WiX 4 来了,我想尝试从 2.0.0 开始更新(b...

回答 1 投票 0

Wix 更新绑定重定向值

我有一个安装程序需要更改 app.config 中的 bindingRedirect 值。目前,我有: 我有一个安装程序需要更改 app.config 中的 bindingRedirect 值。目前,我有: <util:XmlFile Id="Config" Action="setValue" ElementPath="configuration/runtime/assemblyBinding/dependentAssembly/assemblyIdentity[\[]@publicKeyToken='89845dcd8080cc91'[\]]/bindingRedirect/@newVersion" File="[INSTALLFOLDER]\app.config" Value="13.0.0.0"/> 但这会引发错误,因为它找不到节点。我猜这是因为 BindingRedirect 不是 assemblyIdentity 的子元素。 我将如何更新 newVersion 字段? 谢谢 您的元素路径不正确。这不是有效的 XPath 查询(具有特定于 msi 的转义)。您可能需要一个前导的正斜杠。 这就是这个问题的解决方案,如果其他人也遇到这个问题! <util:XmlFile Id="Config" Action="setValue" ElementPath="configuration/runtime/assemblyBinding/dependentAssembly[\[]assemblyIdentity/@publicKeyToken='89845dcd8080cc91'[\]]/bindingRedirect/@newVersion" File="[INSTALLFOLDER]\app.config" Value="13.0.0.0"/> 并且配置文件中的 assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" 需要更改为 assemblyBinding @JWoodley13,你是我的英雄,非常感谢你的回答。 为了使其与 WiX v4.0.2 一起使用,我还需要安装全局工具并安装 WixToolset.Util.wixext 扩展,然后才能在 .wixproj 中将其作为 PackageReference 引用。 在命令行上: dotnet tool install --global wix --version 4.0.2 wix extension add -g WixToolset.Util.wixext 在.wixproj中: <ItemGroup> <PackageReference Include="WixToolset.Util.wixext" Version="4.0.2" /> </ItemGroup> 在 .wxs 文件中,导入更新的 wxs 和 wxs/util 命名空间: <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"> 我也调整了 xpath 以使用包名称: <Component Id="ChangeConfig" Guid="18C80C2F-D0CC-486D-A80A-23646BBAB8FF"> <util:XmlFile Id="Config" Action="setValue" ElementPath="configuration/runtime/assemblyBinding/dependentAssembly[\[]assemblyIdentity/@name='Newtonsoft.Json'[\]]/bindingRedirect/@newVersion" File="[INSTALLFOLDER]\app.config" Value="13.0.0.0"/> </Component>

回答 3 投票 0

使用 WixQuietExec 静默执行 Powershell 脚本

我是使用 WixToolset 的新手,我正在尝试使用 WixQuietExec 执行 ps1 文件 - https://wixtoolset.org/docs/v3/customactions/qtexec/。如果我直接使用

回答 1 投票 0

打包本机自定义操作 DLL 及其依赖项

在使用 Wix3 生成安装程序的遗留应用程序上工作,我想在 C++ 中实现一个自定义操作,该操作将对 libcurl 进行一些调用。问题是 libcurl 有一些依赖性......

回答 1 投票 0

Wix工具集:重启系统后继续安装

我需要开发一个安装程序,将系统已使用的文件复制到系统,并且只能在重新启动后替换。因此,我首先将文件保存到临时文件夹...

回答 1 投票 0

Wix 工具集 3.11.2 - 本地化标识符“xx”已在多个位置重复。请解决冲突

这是我使用 Wix Toolset 和 Visual Stdio 的第一个项目 - 我不算带有“Hello World”类型应用程序的简单教程。 在我当前的项目中,我只有一个本地化文件,

回答 2 投票 0

使用 Wix V3 打包 Windows 窗体桌面应用程序时出现 ICE 18 和 ICE50 错误

我的应用程序有这个wix代码 - 我的应用程序有这个wix代码- <?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Product Id="*" Name="Viveks_Alarm_Clock" Language="1033" Version="1.0.0.0" Manufacturer="Vivek Singh" UpgradeCode="68c68d32-7939-426c-97e5-c329f58c2076"> <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> <MediaTemplate /> <Feature Id="ProductFeature" Title="Viveks_Alarm_Clock" Level="1"> <ComponentGroupRef Id="ProductComponents" /> </Feature> <Icon Id="AlarmClockIconFile" SourceFile="..\Alarm Clock\alarmclock_alarm_3338.ico"/> </Product> <Fragment> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFilesFolder"> <Directory Id="INSTALLFOLDER" Name="Viveks_Alarm_Clock"> <Component Id="ApplicationFiles" Guid="95158faf-49c8-4efc-83b0-4e2bcb0cf367"> <File Id="AlarmClockExe" Source="..\Alarm Clock\bin\Debug\Alarm Clock.exe" KeyPath="yes"/> </Component> <Component Id="ShortcutAndIconFiles" Guid="77640577-6144-4007-a287-a37f921dcdb5"> <Shortcut Id="startmenuViveks_Alarm_Clock" Directory="ProgramMenuFolder" Name="Vivek's Alarm Clock" WorkingDirectory="INSTALLFOLDER" Icon="AlarmClockIconFile" IconIndex="0" Advertise="yes" /> <Shortcut Id="desktopViveks_Alarm_Clock" Directory="DesktopFolder" Name="Vivek's Alarm Clock" WorkingDirectory="INSTALLFOLDER" Icon="AlarmClockIconFile" IconIndex="0" Advertise="yes" /> </Component> </Directory> </Directory> <Directory Id="ProgramMenuFolder" Name="Programs" /> <Directory Id="DesktopFolder" Name="Desktop" /> </Directory> </Fragment> <Fragment> <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> <ComponentRef Id="ApplicationFiles"/> <ComponentRef Id="ShortcutAndIconFiles"/> </ComponentGroup> </Fragment> </Wix> 现在我收到 ICE18 和 ICE50 错误 严重性代码描述项目文件行抑制状态 错误 ICE50:组件“ShortcutAndIconFiles”具有广告的快捷方式,但 KeyPath 为空。 Vivek 的闹钟 C:\Users ivek.singh\source epos\Vivek 的闹钟\Product.wxs 20 严重性代码描述项目文件行抑制状态 错误 ICE18:组件的 KeyPath:“ShortcutAndIconFiles”是目录:“INSTALLFOLDER”。目录/组件对必须列在 CreateFolders 表中。 Vivek 的闹钟 C:\Users ivek.singh\source epos\Vivek 的闹钟\Product.wxs 20 严重性代码描述项目文件行抑制状态 错误 ICE50:组件“ShortcutAndIconFiles”具有广告的快捷方式,但 KeyPath 为空。 Vivek 的闹钟 C:\Users ivek.singh\source epos\Vivek 的闹钟\Product.wxs 20 我该如何解决这些问题?我已经尝试了一切。我正在将 wix Tooset v3 扩展与 Visual Studio 2022 社区版一起使用。我在打包我使用 C# Windows 窗体桌面应用程序为自己创建的闹钟应用程序时遇到了这个问题 我尝试更改文件路径,它们是绝对的,所以我将其设置为相对的。我以多种方式使用树结构,例如将标签放置在标签内等等。我遵循了 wix 指南预期的结构,但似乎没有任何效果 广告的快捷方式必须与快捷方式目标文件放置在同一组件中。因此,将两个快捷方式元素移动到 ApplicationFiles 组件中,这些错误就会消失。

回答 1 投票 0

升级期间卸载相关捆绑包后,使用提升的权限运行清理

我有一个基于 WiX 3.11 的捆绑安装程序,其中包含托管引导程序应用程序。 我想在升级过程中删除相关捆绑包后,在安装程序结束时执行清理操作。

回答 1 投票 0

WiX ExePackage 总是在链内跳过

我有以下 WiX 捆绑链: 我有以下 WiX 捆绑链: <Chain> <ExePackage Id="epVisualCPP2013Redist" SourceFile="$(var.Visual2013CPPRedistDir)vcredist_x64.exe" Permanent="yes" Vital="yes" Cache="no" Compressed="yes" PerMachine="yes" DetectCondition="0" InstallCondition="1"/> <MsiPackage Id="mpTestMsiPackage" SourceFile="$(var.TestMsiPackage.TargetPath)" Vital="yes" Visible="yes" LogPathVariable="LogLocation" Permanent="no" Compressed="yes"/> </Chain> 在这种情况下,我尝试强制安装 Visual C++ 2013 Redistributable Package (vcredist_x64.exe)。问题是,它永远不会被安装,与 DetectCondition 或 InstallCondition 的设置无关(包括我省略它们的情况)。带有 Id="mpTestMsiPackage" 的软件包已正确安装。 注意:我已经可以检测是否是redist。软件包是否已安装。此时适当设置条件是次要的。目前,我希望能够强制执行 redist。始终安装软件包。 检查日志,我发现以下条目: [D0D8:CE50][2023-08-19T01:05:38]i101: Detected package: epVisualCPP2013Redist, state: Absent, cached: None ... [D0D8:CE50][2023-08-19T01:05:41]w321: Skipping dependency registration on package with no dependency providers: epVisualCPP2013Redist ... [D0D8:CE50][2023-08-19T01:05:41]i201: Planned package: epVisualCPP2013Redist, state: Absent, default requested: Present, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None 如果我在 Bootstrapper 应用程序中执行以下操作,它将根据需要进行安装: private void bootstrapperApplication_PlanPackageBegin(object sender, PlanPackageBeginEventArgs e) { if (e.PackageId == "epVisualCPP2013Redist") e.State = RequestState.Present; } 我错过了什么? ExePackage 是否配置不正确或者我在 Bootstrapper 应用程序中遗漏了某些内容? 非常感谢任何帮助! 捆绑日志非常清晰: [D0D8:CE50][2023-08-19T01:05:41]i201: Planned package: epVisualCPP2013Redist, state: Absent, default requested: Present, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None 这部分意味着 ba requested: None 您的 BoostrapperApplication 代码正在强制包Absent。您没有提供足够的代码来理解为什么会发生这种情况,但是去调试您的 BA。

回答 1 投票 0

WiX 安装项目无法找到声明它的本地资源文件

我一直在修改我的安装项目中的一些 WiX 脚本。当我想声明新的字符串资源并修改现有的字符串资源时,我正在寻找项目中使用的现有字符串资源。 我当时……

回答 1 投票 0

是否可以使用 Harvest Tool (Heat) 和 wxs 将文件从一个文件夹复制到另一个文件夹

我有一个场景,根据用户的选择,安装时将几个 dll 复制到特定文件夹。我正在尝试使用 Harvest Tool (Heat) 生成输出。每次加热它

回答 0 投票 0

无法使用 Wix 工具集在我的 Virtual Box 上安装 dotnet 4.8

我已经构建了一个 msi,它将使用 wix 工具集安装 dotnet 4.8,但是在安装过程中它给出了一些其他安装正在运行的错误,所以为什么如果我无法安装它...

回答 1 投票 0

如何使用 Wix 创建自定义 VerifyReadyDlg?

如何在 Wix 设置中创建这样的对话框?它是在 Inno Setup 中默认实现的,但我现在正在考虑如何在 Wix 中执行相同的操作。我的主要问题是如何通过描述

回答 1 投票 0

Wix InstallExecuteSequence在支持第47个msi实例时抛出错误。

在支持第47个实例时抛出了该错误。如果我删除SetMyInstance_Instance47这个动作,它就能正常运行。我需要支持100个实例。代码片段如下。

回答 1 投票 0

具有第三方msi的ProductCode和UpgradeCode,如何在安装我的产品时强制卸载msi

通过测试,我发现第三方软件的升级在某种程度上使我们的产品无法运行。但是,同一测试人员告诉我,卸载了旧的第三方软件和...

回答 1 投票 1

Wix自定义操作运行dll c#

我正在使用自定义操作从dll运行功能,但是当我运行自己构建的msi时,出现错误消息:“此Windows Installer软件包存在问题。此安装需要DLL。 。

回答 1 投票 0

如何在Wix安装程序代码中记录自定义消息?

这是我在.wxs文件中的Wix代码 [[ ] >>

回答 1 投票 1

[Wix安装程序在安装时正在移除其他产品

我有两种通过自定义wix安装程序安装的不同产品(A,B)。由于某种原因,当我安装了A并尝试安装B时,A作为B安装的一部分被卸载,反之亦然...

回答 1 投票 1

WIX以管理员权限执行自定义操作

我已经为WIX安装程序编写了一个自定义操作。该操作的Execute-attribute设置为Deferd and Impersonate并在InstallFinalize之前运行,但是在此操作内遇到问题...

回答 1 投票 1

Wix Installer应用程序运行两次后将无法安装并卸载该应用程序

我用gui编写了一个简单的wix安装程序,可以很好地安装。但是,当我第二次运行相同的.msi文件时,它将带我完成gui中的正常安装过程,但是会在...

回答 1 投票 1

© www.soinside.com 2019 - 2024. All rights reserved.