wix 相关问题

WiX工具集(以前称为Windows Installer XML)是一个工具集,可以从XML源代码构建Windows安装包和WiX引导程序。该工具集支持一个命令行环境,开发人员可以将其集成到他们的构建过程中,以构建MSI和MSM安装程序包以及EXE引导程序。对于基于云的Web开发平台,请使用[wixcode]标记。

WIX 捆绑包创建

我尝试创建一个包含 exe 的 MSI。使用 WIX 中的捆绑选项。这样做时出现错误。有人可以帮我解决这个问题吗?下面是代码: 我尝试创建一个包含 exe 的 MSI。使用 WIX 中的捆绑选项。这样做时出现错误。有人可以帮我解决这个问题吗?下面是代码: <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> <Bundle Version="1.0.0.0" UpgradeCode="7AE2E358-B5A0-44B1-9B29-FDD275992993"> <Chain> <ExePackage Id="Netfx4Full" Compressed="no" PerMachine="yes" Permanent="yes" Vital="yes" SourceFile="ca\dotNetFx40_Full_x86_x64.exe" DownloadUrl="http://go.microsoft.com/fwlink/?LinkId=164193" DetectCondition="Netfx4FullVersion AND (NOT VersionNT64 OR Netfx4x64FullVersion)" /> </Chain> </Bundle> 错误 错误 LGHT0089:找到多个条目部分“{A1B42CCE-8AFE-11E2-AC8C-B3456288709B}”和“{8E644424-3113-462E-9197-32DF740AEB78}”。 单个目标中只能存在一个入口部分。 该错误表明您的项目正在使用包含多个以下元素的文件进行构建:Product、Module、Patch、PatchCreation、Bundle。在您的情况下,听起来您将一个带有 Bundle 元素的文件添加到了已经具有 Product 元素的项目中。目前的 WiX 工具集不支持这一点。您需要将 Bundle 元素放在单独的项目中。 因此,在创建引导程序和 MSI 时,您将有两个 .wixproj 文件。第一个 .wixproj 将包含您的 Product 信息。第二个 .wixproj 将包含您的 Bundle 信息,并具有对第一个 .wixproj 的项目引用,以便构建顺序正确。 我们也有同样的问题: 错误 WIX0089:找到多个条目部分“”和“”。单个目标中只能存在一个入口部分。 我们只是将产品从wix3切换到wix5。 我们已经毫无问题地更换了一种产品。 现在另一个产品,结构基本相同,也有上面提到的这个错误。 product.wxs 的开头是这样的: <?include .\Properties.wxi?> <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui"> <Package ProductCode="$(var.ProductCode)" UpgradeCode="$(var.UpgradeCode)" Name="$(var.ProductName)" Language="!(loc.strLanguageCode)" Version="$(var.ProductVersion)" Manufacturer="$(var.CompanyName)" Scope="perMachine" Compressed="$(var.Compressed)" InstallerVersion="300" > <SummaryInformation Description="$(var.ProductName)" /> Properties.wxi 具有所有定义: <?define ProductCode = "*" ?> <?define UpgradeCode = "{DAFFCD3E-DED3-49E5-B805-9F4C86831B61}" ?> <?define CompanyName = "example company" ?> <?define AppName = "example product"?> <?define SetupName = "example stetup name"?> <?define ProductYear = "2025"?> <?define ProductName = "$(var.AppName) $(var.ProductYear)"?> 我们在这个项目中没有捆绑包,也没有第二个包或产品。 当我们直接在 Product.wxs 中使用 guid 定义 Product-Code 时,错误消息与错误中的 guid 相同: 错误 WIX0089:找到多个条目部分“{09757972-8D40-4624-AE0E-7F32AB22C186}”和“{09757972-8D40-4624-AE0E-7F32AB22C186}”。单个目标中只能存在一个入口部分。

wix
回答 2 投票 0

从 WiX 4 迁移到 5,我失去了“SourceDir”魔力

免责声明:我承认我有时在浏览文档时遇到困难,并且不以 MSI 为生。 我有一个包含一堆项目的解决方案,一个是安装程序,另一个是为了......

回答 1 投票 0

Gitlab Pipeline - 在 Gitlab Pipeline 中使用 WiX Toolset v3

我需要在Gitlab Pipeline期间运行WiX Toolset V3.14.1 light命令,但它永远无法运行。 作业配置 标签: - saas-windows-medium-amd64 # 使用 Windows 运行程序 作业执行

回答 1 投票 0

Wix工具集:如何更改msi执行时任务栏中的标志

我希望在用户运行 msi 安装程序时更改我在任务栏中使用 wix 工具集创建的 msi 徽标。

回答 1 投票 0

WIX 构建错误 ICE61:Upgrade.ActionProperty ...无法在属性表中创作

我正在应用这篇文章的最佳解决方案 如何卸载wix安装程序中的另一个程序?卸载旧版本的产品。 产品.wxs 我正在应用这篇文章的最佳解决方案 如何卸载wix安装程序中的另一个程序?卸载旧版本的产品。 产品.wxs <Property Id="OLD_VERSION" Secure="yes" Value="{53...}" /> <Upgrade Id="EA..."> <UpgradeVersion OnlyDetect="no" Property="OLD_VERSION" Minimum="0.0.0" Maximum="19.0.0" /> </Upgrade> msi 包已构建,我可以运行它,升级过程似乎可以正常工作,但是我在 VS 上收到此错误(这会破坏 devops)。 ICE61: Upgrade.ActionProperty OLD_VERSION cannot be authored in the Property table. 除了在 Visual Studio 的“项目 Pettings”>“工具设置”选项卡中抑制 ICE61 之外,还有其他方法可以解决此问题吗? 我使用的是WIX 3.11.2 如果您想要一个软件包来升级另一个产品,请添加新的 Upgrade/UpgradeVersion 与旧产品的升级代码对。 我通过注释掉声明属性的行来修复相同的错误,即: <!--Property Id="OLD_VERSION" Secure="yes" Value="{53...}" /-->

回答 2 投票 0

升级到 WiX v5 后,WiX Bootstrap 捆绑应用程序中不显示图标和 UI

我的WiX项目从WiX v3.11升级到WiX v5后,出现了以下问题: 引导程序应用程序的主窗口仅显示标题栏,而窗口的其余部分则显示

wix
回答 1 投票 0

如何获取WIX中命令的结果?

我在WIX中运行了命令或脚本,如何获取其运行结果或输出? 运行命令或脚本后,只能获取是否已成功执行,无法设置...

wix
回答 1 投票 0

如何在安装服务之前在wix中执行自定义操作?

这是我的Product.wxs: 在自定义操作中,我想在安装 Apache 2.4 服务之前对 httpd.conf 文件进行更改,实际上 Apache 2.4 服务从...获取配置参数

回答 3 投票 0

使用 Wix,分发使用 SQLite 的程序(必须在 32 位和 64 位上运行)

通过 WiX,我想分发一个使用 SQLite 的 C# 程序。 SQLite 推荐以下文件结构,所以我使用它: 在 Wix 中,我创建 x86 和 x64 文件夹,并将正确的 DLL 放入每个文件夹中: <

回答 2 投票 0

使用复选框和 Wix 工具集创建快捷方式

我正在尝试创建一个快捷方式,该快捷方式仅在用户选中复选框时才会创建。 我试图创建一个属性 我正在尝试创建一个快捷方式,只有当用户选中复选框时才会创建该快捷方式。 我尝试创建一个属性 <Property Id ="INSTALLDESKTOPSHORTCUT" Secure="yes" /> 然后我创建了一个复选框,它将更改此属性的值。 <Control Id="InstallShortcutCheckbox" Type="CheckBox" X="20" Y="140" Width="200" Height="17" Property="INSTALLDESKTOPSHORTCUT" CheckBoxValue="1" Text="Do you want to create a start menu shortcut?" /> 然后我添加了快捷方式标签 <Component Id="DesktopShortcut" Condition="INSTALLDESKTOPSHORTCUT"> <CreateFolder/> <RegistryKey Root="HKCU" Key="Software\Secops Solutions, Inc\Agent\Install" > <RegistryValue Name="DTSC" Value="1" Type="integer" KeyPath="yes"/> </RegistryKey> <Shortcut Id="DesktopShortcut" Directory="DesktopFolder" Name="Life Balance" WorkingDirectory="INSTALLFOLDER" Icon="icon" Target="DesktopFile"/> </Component> 我还尝试使用广告快捷方式,其中我使用了两个组件,它们都有不同的条件,例如 if Condition = "INSTALLDESKTOPSHORTCUT" 还有另一个 Condition = "NOT INSTALLDESKTOPSHORTCUT" 但这也不起作用。 所以我一直在尝试解决这个问题,我在 orca 编辑器中看到了快捷方式,但它仍然没有创建快捷方式。 我解决了问题。 <Component Id="DesktopShortcut" Condition="INSTALLDESKTOPSHORTCUT"> <CreateFolder/> <RegistryKey Root="HKCU" Key="Software\Secops Solutions, Inc\Agent\Install" > <RegistryValue Name="DTSC" Value="1" Type="integer" KeyPath="yes"/> </RegistryKey> <Shortcut Id="DesktopShortcut" Directory="DesktopFolder" Name="Life Balance" WorkingDirectory="INSTALLFOLDER" Icon="icon" Target="DesktopFile"/> </Component> 在这段代码中我必须更改目标如下 <Component Id="DesktopShortcut" Condition="INSTALLDESKTOPSHORTCUT"> <CreateFolder/> <RegistryKey Root="HKCU" Key="Software\Secops Solutions, Inc\Agent\Install" > <RegistryValue Name="DTSC" Value="1" Type="integer" KeyPath="yes"/> </RegistryKey> <Shortcut Id="DesktopShortcut" Directory="DesktopFolder" Name="Life Balance" WorkingDirectory="INSTALLFOLDER" Icon="icon" Target="[#DesktopFile]"/> </Component> 在此只需将目标更改为 Target=[#DesktopFile] 这是文件的 id。

回答 1 投票 0

Wix 预安装要求

我正在使用 wix3.8 为我的应用程序编写安装程序。 在安装之前,我需要检查一些机器要求,如果当前机器没有这些要求,请不要安装我的

回答 3 投票 0

如何使用 jpackage 通过 WiX 创建 32 位安装程序

我正在使用 Java 14 jpackage 打包 32 位 JVM 和 Java 应用程序,而 Java 14 jpackage 又使用 WiX。 我可以成功创建 .msi 安装程序,但它似乎是一个 64 位应用程序 甚至没有开始...

回答 1 投票 0

如何在 WiX 中的单独组件中注册文件关联

我正在尝试创建一个单独的功能来在 WiX 安装程序中注册文件关联: ...

回答 2 投票 0

如果应用程序打开并且用户想要卸载它,如何添加警告消息

我创建了一个引导程序 EXE 文件,它具有 .Net 先决条件和我的 MSI 链接在一起。我能够使用此 EXE 成功安装/卸载。 现在客户想要一个条件,他应该...

回答 2 投票 0

heatwave 使用 wix 工具集启动 msi 时出现 UAC 提示

我正在使用heatwave的wix工具集创建一个msi,我想在msi启动时立即给出UAC提示,现在UAC位于安装按钮的末尾。 我尝试过设置...

回答 1 投票 0

heat.exe 收获将旧的 v3 命名空间添加到收获的文件中

我在从 WiX v3 升级到 v4 时遇到了这个问题,并想提供一个对我有用的答案,因为我在这里没有找到任何答案。 问题: 就我而言,我试图自动化该过程......

回答 1 投票 0

从 Wix 3 升级后,Wix 5 CustomAction 批处理文件失败

我们产品的 Wix 3 安装程序版本使用以下配置成功执行了批处理文件: 我们产品的 Wix 3 安装程序版本使用以下配置成功执行了批处理文件: <SetProperty Id="RunBatch" Value="&quot;[SetupDir]batch.bat&quot;" Before="RunBatch" Sequence="execute" /> <CustomAction Id="RunBatch" Execute="deferred" Return="check" Impersonate="no" BinaryKey="WixCA" DllEntry="WixQuietExec64" /> <InstallExecuteSequence> <Custom Action="RunBatch" Before="RunDBSetup" > NOT Installed AND NOT REMOVE </Custom> </InstallExecuteSequence> 将wxs文件转换为Wix 4(Wix 5使用的架构)后,上述元素转换为: <SetProperty Id="RunBatch" Value="&quot;[SetupDir]batch.bat&quot;" Before="RunBatch" Sequence="execute" /> <CustomAction Id="RunBatch" Execute="deferred" Return="check" Impersonate="no" DllEntry="WixQuietExec" BinaryRef="Wix4UtilCA_$(sys.BUILDARCHSHORT)" /> <InstallExecuteSequence> <Custom Action="RunBatch" Before="RunDBSetup" Condition="NOT Installed AND NOT REMOVE" /></InstallExecuteSequence> 构建 wxs 文件后,我们运行 msiexec 并针对此自定义操作收到以下错误: MSI (s) (5C:E8) [19:05:48:239]: Executing op: ActionStart(Name=RunBatch,,) MSI (s) (5C:E8) [19:05:48:242]: Executing op: CustomActionSchedule(Action=RunBatch,ActionType=3073,Source=BinaryData,Target=WixQuietExec,CustomActionData="C:\Program Files\Company\Product\setup\batch.bat") MSI (s) (5C:E8) [19:05:48:244]: Creating MSIHANDLE (165) of type 790536 for thread 9192 MSI (s) (5C:3C) [19:05:48:246]: Invoking remote custom action. DLL: C:\WINDOWS\Installer\MSI5719.tmp, Entrypoint: WixQuietExec MSI (s) (5C!1C) [19:05:48:252]: Creating MSIHANDLE (166) of type 790531 for thread 15644 WixQuietExec: Error 0x80070002: Command failed to execute. MSI (s) (5C!1C) [19:05:48:253]: Closing MSIHANDLE (166) of type 790531 for thread 15644 MSI (s) (5C!1C) [19:05:48:253]: Creating MSIHANDLE (167) of type 790531 for thread 15644 WixQuietExec: Error 0x80070002: QuietExec Failed MSI (s) (5C!1C) [19:05:48:254]: Closing MSIHANDLE (167) of type 790531 for thread 15644 MSI (s) (5C!1C) [19:05:48:254]: Creating MSIHANDLE (168) of type 790531 for thread 15644 WixQuietExec: Error 0x80070002: Failed in ExecCommon method MSI (s) (5C!1C) [19:05:48:255]: Closing MSIHANDLE (168) of type 790531 for thread 15644 CustomAction RunBatch returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox) 我们后来尝试了以下更改,但没有成功: 确认直接从cmd行调用时批处理文件运行没有错误 使用修改后的“空”版本的批处理文件(仅包含 echo 语句)运行安装文件。 还尝试通过调用 exit 0 来终止批处理文件 限制仅使用 X86 和 X64 版本的 Wix4UtilCA_ 设置模拟=“是” 使用管理员权限从 powershell 运行安装程序 我们期望调用批处理文件不会出现错误,就像使用 Wix 3 一样。 这一切都在 Windows 11 上运行。 关于可能导致此错误的原因有什么想法吗? 非常感谢! tldr:批处理文件不存在,导致自定义操作返回错误。 作为 Wix 5 升级的一部分,我们用新的 Files 元素替换了用于复制各种文件的 heat 转换,包括相关的批处理文件。 事实上有两个 Files 元素,最初设置为: <ComponentGroup Id="ApplicationFiles"> <Files Directory="BinDir" Include="$(env.HeatProgramSourceFiles)\**"> </Files> <Files Directory="SetupDir" Include="$(env.HeatProgramSourceFiles)\**"> </Files> </ComponentGroup> 请注意,在上面的配置中,包含属性都设置为同一目录。 结果,包括batch.bat在内的多个文件被引用了两次。 如果文件被多次引用,Wix 构建将跳过复制文件。 这导致batch.bat被复制到错误的位置。 当自定义操作尝试在预期位置运行该文件时,该文件不存在。 更正文件包含属性,使目录不重叠,修复自定义操作: <ComponentGroup Id="BrainBankFiles"> <Files Directory="BinDir" Include="$(env.HeatProgramSourceFiles)\bin\**"> </Files> <!-- Be careful that the Files Include attribute below specifies a directory that DOES NOT overlap any directories specified in previous Files elements. If you do, you will get a warning during the wix build and the duplicate references will not get copied to the target location during install. --> <Files Directory="SetupDir" Include="$(env.HeatProgramSourceFiles)\setup\**"> </Files> </ComponentGroup>

回答 1 投票 0

VisualStudio 2022 CRT MergeModules 覆盖较新的 msvcp140.dll

我的C++应用程序是使用Visual Studio 2022 v17.4构建的,其中具有MSVC工具14.34.31933,然后使用WiX Toolset创建Windows安装包.MSI。 Product.wxs 文件包含...

回答 1 投票 0

如何将我的 VSC 文件夹放入我的 Wix 网站?

我在 Visual Studio Code 上创建了一个用于文本转语音的程序,并尝试将其实现到我的 Wix 网站中。为了在 Wix 上添加自定义代码部分,您需要一个服务器 URL。不过,我是

回答 1 投票 0

如何在Wix安装程序中添加url [LINK]

我正在使用Wix工具集版本3.7。 我想在欢迎屏幕描述中添加一些指向产品网站的链接。如何实现这一目标?

回答 2 投票 0

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