WiX工具集(以前称为Windows Installer XML)是一个工具集,可以从XML源代码构建Windows安装包和WiX引导程序。该工具集支持一个命令行环境,开发人员可以将其集成到他们的构建过程中,以构建MSI和MSM安装程序包以及EXE引导程序。对于基于云的Web开发平台,请使用[wixcode]标记。
我想使用 Wix5 创建一个安装程序。我们要安装的软件依赖于另一个软件,并且有一些文件取决于安装的必备软件的版本。 所以...
我如何在 Wix Studio 编辑器上的按钮中启用多行文本(特别是移动断点)
如何在 Wix Studio Editor 中使按钮文本分成多行,同时确保在移动断点上正确显示?
我已经使用 .NET 8 创建了一个 Bootstrapper 应用程序项目,我想在我的 WiX 捆绑项目中使用它(作为 UI)。我面临的问题是我的 Bootstrapper 应用程序的输出...
什么原因会导致 MSIExec 错误 1619 '此安装包无法打开'
我正在尝试从一组示例程序中自动执行往返安装和卸载一组 MSI 文件(由 WiX 生成)。由于某种原因,.MSI 文件非常适合安装...
将 Wix 从 v4 升级到 v5:确保已提供“http://wixtoolset.org/schemas/v4/wxs/ui”命名空间中元素的扩展
在 Microsoft Visual Studio 2022 中,我尝试通过更新 Wix 安装程序的 Nuget 包依赖项(WixToolset.netfx.wixext 和 WixToolset.UI.wixext)来升级我的 Wix 安装集...
我需要隐藏特定产品的产品价格,并且还需要为其创建自定义配置 例如:如果我对该产品选择“否”,那么该产品的价格将被隐藏
如何在Wix burn Bootstrapper上获取msi版本号
我有这个bundle.wxs: 我有这个bundle.wxs: <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"> <?define ProductName="YOUVI Panel v5.0.9.0" ?> <Bundle Name="$(var.ProductName)" Version="5.0.9.0" Manufacturer="Company" UpgradeCode="Some GUID" IconSourceFile ="Resources/youvi_panel.ico"> <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense"> <bal:WixStandardBootstrapperApplication LicenseFile="Resources/license_en.rtf" LogoFile="Resources/dialog.jpeg" ThemeFile="Resources/CustomTheme.xml" LocalizationFile="Resources/CustomTheme.wxl"/> </BootstrapperApplicationRef> <Chain> <MsiPackage Id ="Setup" DisplayName ="YOUVI.PanelService.Installer" DisplayInternalUI ="no" SourceFile="$(var.YOUVI.PanelService.Installer.TargetPath)" Compressed="yes" Vital="yes" Permanent="no"/> </Chain> </Bundle> 这是我们的product.wxs(Installer.msi) 的快捷方式,我在 Bootstrapper 上设置了对它的引用: <Product Id="*" Name="YOUVI Panel v!(bind.FileVersion.fil33CD3061EBAE985C253BB51BC48FBD3C)" Language="!(loc.LANG)" Version="!(bind.FileVersion.fil33CD3061EBAE985C253BB51BC48FBD3C)" Manufacturer="Company" UpgradeCode="Some GUID"> 我的问题是如何从我的bundle.wxs中的product.wxs中获得相同的ProductName或ProductVersion,以始终发布相同的版本和名称?当然,我们不必总是手动更改 Bootstrapper 中的版本号。 在 Bundle 中您可以引用包元数据。在您的情况下,!(bind.packageVersion.Setup)将为您提供MsiPackage的版本。
我使用转换来生成文件的组件,每次转换都会生成新的 GID。这可能是一个问题 我使用转换来生成文件的组件,每次转换都会生成新的 GID。这可能是一个问题 <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:wix="http://wixtoolset.org/schemas/v4/wxs" xmlns="http://wixtoolset.org/schemas/v4/wxs" exclude-result-prefixes="wix"> <!--Load all components--> <xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> <!--Filter components--> <xsl:key name="pdb-search" match="wix:Component[contains(wix:File/@Source, '.pdb')]" use="@Id" /> <xsl:template match="wix:Component[key('pdb-search', @Id)]" /> <xsl:template match="wix:ComponentRef[key('pdb-search', @Id)]" /> <!--Override SAMPLE.exe component--> <xsl:key name="sampleExe-search" match="wix:Component[wix:File/@Source='$(var.BasePath)\SAMPLE.exe']" use="@Id" /> <xsl:template match="wix:Component[key('sampleExe-search', @Id)]" > <Component Id="cmpSample" Guid="{@Guid}"> <File Id="filSample" Source="$(var.BasePath)\SAMPLE.exe"/> <ProgId Id="SAMPLE Weather file" Description="Weather information used to route ships over the oceans" Icon="Sample.exe" IconIndex="0" Advertise="yes"> <Extension Id="sps" Advertise="yes"> <MIME ContentType="application/sps" Default="yes" /> <Verb Id="open" Command="&Open" Argument=""%1"" Sequence="1" /> </Extension> </ProgId> </Component> <Component Id="DesktopShortcut" Guid="60F4A4B3-DD4D-4FD6-B6AE-9C5EB8FCC0D1" Directory="DesktopFolder" Condition="CREATE_DESKTOP_ICON"> <RegistryValue Root="HKCU" Key="SOFTWARE\TechGroup\SAMPLE_9" Name="DesktopShortcutEnabled" Value="1"></RegistryValue> <Shortcut Name="SAMPLE_9" Directory="DesktopFolder" Target="[#filSample]" Icon="Sample.exe"></Shortcut> </Component> <Component Id="MenuShortcut" Guid="771174C2-CAC8-4E32-9BC6-C91D5458C9FA" Directory="ProgramMenuFolder" Condition="CREATE_MENU_ITEMS"> <RegistryValue Root="HKCU" Key="SOFTWARE\TechGroup\SAMPLE_9" Name="MenuShortcutEnabled" Value="1"></RegistryValue> <Shortcut Name="SAMPLE_9" Directory="ProgramMenuFolder" Target="[#filSample]" Icon="Sample.exe"></Shortcut> </Component> </xsl:template> <xsl:template match="wix:ComponentRef[key('sampleExe-search', @Id)]" > <ComponentRef Id="cmpSample" /> <ComponentRef Id="DesktopShortcut" /> <ComponentRef Id="MenuShortcut" /> </xsl:template> <!--Override SAMPLE.exe.cofig component--> <xsl:key name="sampleExeConfig-search" match="wix:Component[wix:File/@Source='$(var.BasePath)\SAMPLE.exe.config']" use="@Id" /> <xsl:template match="wix:Component[key('sampleExeConfig-search', @Id)]" > <Component Id="cmpSampleConfig" Guid="{@Guid}"> <File Id="filSampleConfig" Source="$(var.BasePath)\SAMPLE.exe.config" /> </Component> </xsl:template> <xsl:template match="wix:ComponentRef[key('sampleExeConfig-search', @Id)]" > <ComponentRef Id="cmpSampleConfig" /> </xsl:template> </xsl:stylesheet> 因为在生成补丁时我会得到每个组件的错误列表。由于每次生成新的 GUI 时组件列表都会发生变化 C:\patch creation\new\SPOS_9.msi : error WIX0305: Removing component 'cmpyCS6YyDTyJkQgc8huzIZDCVWgKE' from feature 'ProductFeature' is not supported. Either the component was removed or the guid changed in the transform 'RTM'. Add the component back, undo the change to the component guid, or remove the entire feature. C:\patch creation\new\SPOS_9.msi : error WIX0305: Removing component 'cmpyFmO.0Y9VC3vYYMMmrdEzut86QE' from feature 'ProductFeature' is not supported. Either the component was removed or the guid changed in the transform 'RTM'. Add the component back, undo the change to the component guid, or remove the entire feature. C:\patch creation\new\SPOS_9.msi : error WIX0305: Removing component 'cmpy_JwZlrA0E.z.S5kNPQVrbh8eDE' from feature 'ProductFeature' is not supported. Either the component was removed or the guid changed in the transform 'RTM'. Add the component back, undo the change to the component guid, or remove the entire feature. C:\patch creation\new\SPOS_9.msi : error WIX0305: Removing component 'cmpyhmgT96wXgO6xXU6TQAq_c_i1XE' from feature 'ProductFeature' is not supported. Either the component was removed or the guid changed in the transform 'RTM'. Add the component back, undo the change to the component guid, or remove the entire feature. C:\patch creation\new\SPOS_9.msi : error WIX0305: Removing component 'cmpz.VA3sXmzkRwYFkiGBOVekughW8' from feature 'ProductFeature' is not supported. Either the component was removed or the guid changed in the transform 'RTM'. Add the component back, undo the change to the component guid, or remove the entire feature. C:\patch creation\new\SPOS_9.msi : error WIX0305: Removing component 'cmpz43YohzMGP9rXZZCPv8BQdEo2ZA' from feature 'ProductFeature' is not supported. Either the component was removed or the guid changed in the transform 'RTM'. Add the component back, undo the change to the component guid, or remove the entire feature. C:\patch creation\new\SPOS_9.msi : error WIX0305: Removing component 'cmpzKkjlAgCv0Bt1Ua__5X2MYNhyFg' from feature 'ProductFeature' is not supported. Either the component was removed or the guid changed in the transform 'RTM'. Add the component back, undo the change to the component guid, or remove the entire feature. C:\patch creation\new\SPOS_9.msi : error WIX0305: Removing component 'cmpzeCdz2zW17T3jTD6M_Tb6v4JIYU' from feature 'ProductFeature' is not supported. Either the component was removed or the guid changed in the transform 'RTM'. Add the component back, undo the change to the component guid, or remove the entire feature. C:\patch creation\new\SPOS_9.msi : error WIX0305: Removing component 'cmpzfMfn0XaGQpis0F6xJ6D672J08A' from feature 'ProductFeature' is not supported. Either the component was removed or the guid changed in the transform 'RTM'. Add the component back, undo the change to the component guid, or remove the entire feature. C:\patch creation\new\SPOS_9.msi : error WIX0305: Removing component 'cmpzkJaQ576cXT1n5UZiudak0QTE_4' from feature 'ProductFeature' is not supported. Either the component was removed or the guid changed in the transform 'RTM'. Add the component back, undo the change to the component guid, or remove the entire feature. C:\patch creation\new\SPOS_9.msi : error WIX0305: Removing component 'cmpzrVlTC_vmvuBdNrhK07LvzTa2pc' from feature 'ProductFeature' is not supported. Either the component was removed or the guid changed in the transform 'RTM'. Add the component back, undo the change to the component guid, or remove the entire feature. C:\patch creation\new\SPOS_9.msi : error WIX0305: Removing component 'cmpzroMeoHBn0Bpu91Sux3KBINena0' from feature 'ProductFeature' is not supported. Either the component was removed or the guid changed in the transform 'RTM'. Add the component back, undo the change to the component guid, or remove the entire feature. C:\patch creation\new\SPOS_9.msi : warning WIX1110: Component 'cmpDuCAJnvh7iERisroNVs4ez1Xrfg' was added to feature 'ProductFeature' in the transform 'RTM'. If you cannot guarantee that this feature will always be installed, you should consider adding new components to new top-level features to prevent prompts for source when installing this patch. 错误的真实屏幕 我的 Patch.wsx 文件如下所示: <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> <Patch AllowRemoval="yes" DisplayName="Product Patch v$(Version)" Description="Product Patch v$(Version)" MoreInfoURL="https://wixtoolset.org/" Manufacturer="WiX Toolset" Classification="Update"> <Media Id="1" Cabinet="patch.cab"> <PatchBaseline Id="RTM1" BaselineFile="SAMPLE_9_old.msi" UpdateFile="SAMPLE_9.msi" /> </Media> <PatchFamily Id="SequenceFamily" Version="1.1.1" /> </Patch> </Wix> 我用这个命令构建它: wix build -define Version=2.0 -bindpath C:\Users\purbanski\source\repos\spos-onboard\src\SposOnboard\SposOnboardInstallerWix\bin\x86\Release\en-us -bindpath C:\Users\purbanski\source\repos\spos-onboard\src\SposOnboard\SposOnboardInstallerWix\bin\x86\Release\en-us -out MyPatchV1V2.msp Patch.wxs 我训练构建补丁 如果您在收获期间生成唯一的 GUID,则 MSP 将无法实现。这是 Windows Installer 的基本设计限制。
如何在 WiX Bootstrapper 项目中设置自定义 ProductVersion?
在我的 WiX Bootstrapper 项目中,我可以使用 Bundle 元素的 Version 属性来定义 Bundle 的版本。这是一个例子: 在我的 WiX Bootstrapper 项目中,我可以使用 Bundle 元素的 Version 属性定义 Bundle 的版本。这是一个例子: <Bundle Name="Sample" Manufacturer="Sample Ltd." Version="1.0.0.0" UpgradeCode="5fffcf4d-b3e4-4eba-a850-ab8ab3fe501d"> </Bundle> 然后,Version属性的值将用于最终 .exe 文件中的 FileVersion 和 ProductVersion 字段。 我们需要将ProductVersion设置为自定义值,例如1.0.0.0 cs203948。这可能吗?目前,我们使用 ResourceHacker 工具来修改 ProductVersion,但该工具会导致问题(例如,本地计算机上的“内存不足”错误)。因此,我们希望消除对它的需求。 更新1: 好像不支持,参见方法UpdateBurnResources。所以我之后必须更改ProductVersion。 我已经尝试过的工具: ResourceHacker:仍然可以在虚拟机中工作,但不能在普通机上工作(我正在尝试联系开发人员) ResourceTuner:确实有效,但它不是免费的,而且我真的不知道如何获得许可,因为我会将其集成到在n台计算机上运行的MSBuild中。 RCEdit: 破坏可执行文件 WinAPI 方法 UpdateResourceA:破坏可执行文件 更新2: StampVer:仅支持格式“X.X.X.X” 提前致谢! 查看原帖评论。
如何配置 WiX v4 的 InstallPrivileges?
我在 MSI 安装程序中使用即时自定义操作,该操作需要管理员权限,但也需要在用户上下文下运行。当我在没有管理员权限的情况下运行安装程序时,我得到一个“访问权限”
在 Wix 5 中 为什么在安装和卸载时都会调用这两个操作? 在 Wix 5 中 为什么在安装和卸载时都会调用这两个操作? <CustomAction Id="InstallConfigFile" BinaryRef="dllExecutionTest" DllEntry="InstallConfigFile" Return="check" /> <CustomAction Id="UnInstallConfigFile" BinaryRef="dllExecutionTest" DllEntry="UnInstallConfigFile" Return="check" /> <InstallExecuteSequence> <Custom Action="InstallConfigFile" After="InstallFiles"></Custom> <Custom Action="UnInstallConfigFile" After="RemoveFiles"></Custom> </InstallExecuteSequence> 在 v5 中,语法已经演变如下 <Custom Action="InstallConfigFile" After="InstallFiles" Condition="NOT Installed"></Custom> <Custom Action="UnInstallConfigFile" Before="RemoveFiles" Condition='REMOVE="ALL"'></Custom>
在哪里可以找到 Microsoft.Tools.WindowsInstallerXml.dll?
我正在尝试通过子类化 CompilerExtension 来编写 Wix 扩展,但我无法找到引用 Microsoft.Tools.WindowsInstallerXml 命名空间的 dll。我在网上搜了一下没有...
我正在使用 WiX 3.5。最近,构建服务器上开始频繁出现以下 WiX 错误: light.exe (,): 错误 LGHT0301: 无法打开数据库。在验证过程中,这最
Wix:我可以对RemoveFolderEx 元素施加一个条件,使其仅在卸载程序时运行吗?
我正在尝试使用RemoveFolderEx删除文件夹层次结构,但仅限于卸载软件时。 目前,当我重新安装时,它也会删除所有文件夹,从而删除所有...
WIX Burn 升级在安装新版本后删除 ExePackages
如何防止 Wix burn 在升级安装过程中删除 ExePackages? 背景:我正在使用 Wix 3.11 和自定义引导程序应用程序以及多个 ExePackages 创建安装程序...
可以根据功能选择使用相同的可执行文件注册多个Windows服务吗?
仅使用Wix工具集和标准功能,有没有一种方法可以使用不同的参数将相同的可执行文件多次注册为Windows服务,但每个服务注册都是依赖的...
我有 旧的wix安装项目。 我使用 HeatWave 将其转换为 v4 版本 但该项目仍然使用我不知道他们是否需要的东西 XSLT - 转换 你觉得怎么样,是...
xml.LoadData - 根级别的数据无效。 1 号线,位置 1
我正在尝试解析 WiX 安装程序中的一些 XML。 XML 将是从 Web 服务器返回的所有错误的对象。我使用以下代码在问题标题中收到错误: Xml文档...
无法构建“WixSharp Setup - Bootstrapper (WiX4)”项目
我对 WixSharp 非常陌生。当我从模板创建 WixSharp 项目时,出现以下错误: 1>源基目录:C:\Users\Robert\source epos\WixSharp 设置 6\WixSharp 设置 6 ...
我正在尝试使用 HTML 在 wix 上构建自定义表单。提交时我希望表单数据存储在我的wix数据库中我尝试了这个简单的代码但不起作用 我收到此错误:TypeError:$...