wix 相关问题

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

在命令行上设置公共属性值

在 msi 的命令行上设置公共属性值遵循以下模式 MyInstaller.msi PUBLICPROPERTY="someValue" 这适用于“命令提示符”,即 cmd.exe 和 powershell。 但 我的机构...

回答 1 投票 0

HeatDirectory 组件 ID 重复

在我的项目中有几个模块。它们的源文件由 heatdirectory 生成。 在我的项目中有几个模块。它们的源文件由 heatdirectory 生成。 <HeatDirectory DirectoryRefId="ServerAdminService" OutputFile="Source\ServerAdminServiceSource.wxs" Transforms="Filter.xsl" Directory="..\..\Server\ServerServiceManager\bin\Debug\" PreprocessorVariable="var.ServerAdminServicePath" ComponentGroupName="ServerAdminServiceGroup" ToolPath="$(WixToolPath)" SuppressCom="true" SuppressFragments="true" SuppressRegistry="true" SuppressRootDirectory="true" AutoGenerateGuids="true" GenerateGuidsNow="false"> </HeatDirectory> <HeatDirectory DirectoryRefId="ServerAdminService" OutputFile="Source\ServerAdminClientSource.wxs" Transforms="Filter.xsl" Directory="..\Setup\C24.ServerAdmin.UI\bin\Debug\" PreprocessorVariable="var.ServerAdminClientPath" ComponentGroupName="ServerAdminClientGroup" ToolPath="$(WixToolPath)" SuppressCom="true" SuppressFragments="true" SuppressRegistry="true" SuppressRootDirectory="true" AutoGenerateGuids="true" GenerateGuidsNow="false"> </HeatDirectory> 效果很好。我需要将它们安装在一个目录中。但他们使用了两个模块中都存在的多个库,并且在生成源文件后由具有重复 ID 的组件组成。其实我不知道该怎么办。有人有想法吗? 我遇到了完全相同的问题。 我通过创建一个自定义构建任务来解决这个问题,该任务在 HeatDirectory 任务之后运行以将后缀附加到 Id 属性。 <AddSuffixToHeatDirectory File="ReportFiles.Generated.wxs" Suffix="_r" /> AddSuffixToHeatDirectory任务是这样的: public class AddSuffixToHeatDirectory : Task { public override bool Execute() { bool result = true; Log.LogMessage("Opening file '{0}'.", File); var document = XElement.Load(File); var defaultNamespace = GetDefaultNamespace(document); AddSuffixToAttribute(document, defaultNamespace, "Component", "Id"); AddSuffixToAttribute(document, defaultNamespace, "File", "Id"); AddSuffixToAttribute(document, defaultNamespace, "ComponentRef", "Id"); AddSuffixToAttribute(document, defaultNamespace, "Directory", "Id"); var files = (from x in document.Descendants(defaultNamespace.GetName("File")) select x).ToList(); Log.LogMessage("Saving file '{0}'.", File); document.Save(File); return result; } private void AddSuffixToAttribute(XElement xml, XNamespace defaultNamespace, string elementName, string attributeName) { var items = (from x in xml.Descendants(defaultNamespace.GetName(elementName)) select x).ToList(); foreach (var item in items) { var attribute = item.Attribute(attributeName); attribute.Value = string.Format("{0}{1}", attribute.Value, Suffix); } } private XNamespace GetDefaultNamespace(XElement root) { // I pieced together this query from hanselman's post. // http://www.hanselman.com/blog/GetNamespacesFromAnXMLDocumentWithXPathDocumentAndLINQToXML.aspx // // Basically I'm just getting the namespace that doesn't have a localname. var result = root.Attributes() .Where(a => a.IsNamespaceDeclaration) .GroupBy(a => a.Name.Namespace == XNamespace.None ? String.Empty : a.Name.LocalName, a => XNamespace.Get(a.Value)) .ToDictionary(g => g.Key, g => g.First()); return result[string.Empty]; } /// <summary> /// File to modify. /// </summary> [Required] public string File { get; set; } /// <summary> /// Suffix to append. /// </summary> [Required] public string Suffix { get; set; } } 希望有帮助。 我今天仍在使用这种方法,但我还没有进行调查 Transform 或扩展 HeatDirectory 的跑腿工作。

回答 1 投票 0

Wix Toolset v4 Bundle 的托管 Bootstraper 应用程序(适用于 .Net Framework)

几天来一直在努力寻找 Wix Toolset v4 的托管 BA 的工作示例。其中大部分都在 v3 中。我对这个现有问题有完全相同的问题,还有一些类似的问题......

回答 1 投票 0

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

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

回答 1 投票 0

错误 0x8007000b:无法创建托管引导程序应用程序

我希望你一切都好:) 所以,我正在做一些关于 Burn、Bootstrapper 工具的 wix 教程。 我尝试构建自己的 UI(按照本教程),当我想运行它时,它崩溃了。 我有

回答 2 投票 0

正确安装WiX Toolset 4.0.2

我使用安装了 WiX 4.0.2 dotnet工具安装--global wix 这会将 WiX 安装到 %USERPROFILE%\.dotnet ools\.store\wix .0.2\wix .0.2 ools et6.0 纽约 这个文件夹里面没有Wix*Extensio...

回答 1 投票 0

WiX4 bootstrapper:在条件语句中使用运行时变量

我想根据传递的命令行参数使用各种WIX代码。 我想根据传递的命令行参数使用各种 WIX 代码。 <Bundle ... > <Variable Name="INSTALL_CONDITION" Value="0" Type="numeric" bal:Overridable="yes" /> <?ifdef INSTALL_CONDITION?> <!-- behaviour #1 --> <?else?> <!-- behaviour #2 --> <?endif?> 事实上,我的变量INSTALL_CONDITION在满足条件时并未定义,因为我一直得到“行为#2” 预期场景: <?if INSTALL_CONDITION = 1?> <!-- behaviour #1 --> <?else?> <!-- behaviour #2 --> <?endif?> 启动命令: .\MyBundle.exe /log log.txt INSTALL_CONDITION=1 日志中的变量: Initializing numeric variable 'INSTALL_CONDITION' to value '0' Setting string variable 'INSTALL_CONDITION' to value '1' Variable: INSTALL_CONDITION = 1 <?if?> 和 <?ifdef?> 是 预处理器指令。它们在编译期间进行评估,并且在运行时不起作用。对于运行时条件,请查找 Condition 属性,例如 ExePackage。

回答 1 投票 0

WiX4 bootstrapper:定义布尔命令行参数的正确方法

我的目标是设置一个像 /DefaultMode 这样的参数,只是一个哈希+命令名称,而不传递一个像 DefaultMode=1 这样的值。我的动机是默认的 wix 参数,例如:/install | /修复| /

回答 1 投票 0

如何通过wixsharp安装程序安装exe

我的问题不一定是在wixsharp上,但你可能会帮忙。就像,也许我使用了错误的项目类型等。 我使用 wix Sharp 的 ManagedProject。 在我的安装过程中,我想安装...

回答 1 投票 0

net 7 支持构建 Wix 4 自定义操作吗?

我正在将解决方案转换为 net 7。它包含 WiX 安装程序(最近转换为 WiX 4)和自定义操作项目(当前在 net 4.7.2 中)。 在自定义操作项目构建结束时,它会运行

回答 1 投票 0

WinUI 和 WiX 安装程序

我们可以使用 WiX 工具集为 WinUI 应用程序创建安装程序吗?我找到了为 Windows 窗体项目创建安装程序的文档,但是 WinUI 应用程序是否可以实现?

回答 1 投票 0

具有自定义操作的 WIX 安装程序:“由比当前加载的运行时更新的运行时构建,无法加载。”

我有一个 WIX 安装程序,可以在安装过程中执行自定义操作。当我运行 WIX 安装程序时,它遇到第一个自定义操作,安装程序失败,我收到一个错误...

回答 0 投票 0

如何使用wix bootstarper从客户端计算机获取.net运行时版本?

我的要求是检查客户端计算机中最新的.net运行时版本,以便我可以比较特定版本是否属于.net 6运行时,我已经尝试了一些步骤

回答 2 投票 0

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

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

回答 2 投票 0

从 Windows Installer 切换到 Wix 并删除以前的版本

我有一个 WPF 应用程序的 Windows 安装项目,它引用了一个名为“x”的项目。我们现在已经对应用程序进行了重大升级,其中大部分涉及重构代码和m...

回答 1 投票 0

WIX v4 安装程序 - 如何创建快捷方式?

我是 WIX 新手,并尝试使用 Visual Studio 的 heatWave 包为我的应用程序创建安装程序。我正在尝试使用版本 4。 我的基本安装程序正在运行。但我正在...

回答 1 投票 0

将默认选中的 Wix 复选框值保存到注册表

我有一个用 Wix 编写的安装程序。在 UI 向导中,有一个默认处于选中状态的复选框。我想将此复选框的值保存到注册表中以进行更改、修复和升级...

回答 2 投票 0

如何在Wix中使用导入的字符串作为安装目标文件夹,

定义属性后,如何将目录名称设置为您定义的该属性。 我在这里定义了一个属性,它从注册表中读取一个值,并将其分配给该属性。 定义属性后,如何将目录名称设置为您定义的该属性。 我在这里定义了一个属性,它从注册表中读取一个值,并将其分配给该属性。 <Property Id="REGISTRY_VALUE"> <RegistrySearch Id="RegistrySearchId" Root="HKLM" Key="SOFTWARE\YourCompany\YourApp" Name="YourRegistryKey" Type="raw" /> </Property> 我使用该属性根据属性值设置 INSTALLDIR 名称 <Directory Id="ProgramFilesFolder"> <Directory Id="INSTALLDIR" Name="[REGISTRY_VALUE]"> <!-- Add your files and other components here --> </Directory> </Directory> 但是 INSTALLDIR 目录仍然创建为 [REGISTRY_VALUE],而不是 REGISTRY_VALUE 属性的名称。我还尝试在安装过程中使用自定义操作将目录名称分配给属性,但仍然不起作用。 您使用在 CostInitialize 之前安排的 setproperty 自定义操作(msi 类型 51)来分配 INSTALLDIR [REGISTRY_VALUE]。仅在“未安装”和“未安装目录”的情况下执行此操作很重要。这是因为目录对于已安装的产品来说是不可变的(主要升级不会被视为已安装......这是您正在执行的操作的典型用例)并且您希望尊重在命令行中传入的任何内容.

回答 1 投票 0

我如何在wix工具集V4 FirewallException中使用?

如何使用FirewallException?我添加了xlmns,但仍然出现此错误: C:\用户 oot\Downloads\glpi\glpi\glpi_.wxs(331) : 错误 WIX0200: File 元素包含未处理的扩展元素 '

回答 1 投票 0

wixtoolset 4:如何使用条件?

我正在尝试使用 wixtoolset 4 创建 mso,不幸的是大多数示例/文档适用于 wixtoolset 3,我目前无法成功添加条件。 我已经安装了 bal 扩展

回答 1 投票 0

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