如何包含由 Heat 创建的 Wix Fragments

     2023-02-16     7

关键词:

【中文标题】如何包含由 Heat 创建的 Wix Fragments【英文标题】:How to include Wix Fragments created by Heat 【发布时间】:2010-11-16 09:53:28 【问题描述】:

我有以下片段:

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
        <ComponentGroup Id="Doc">
            <ComponentRef Id="cmpCDCC386748AE7BEFE7C2F4E764390254" />
            <ComponentRef Id="cmp6EC513AE37CCAE66CEA96577E2384AFA" />
            <ComponentRef Id="cmp0C9D9450CB94FF74C6E29C1C3F6D16D5" />
            <ComponentRef Id="cmp314DEE3E909157F47FDF963DCC04D2AC" />
            <ComponentRef Id="cmpBC5FB761D7B0DA99F96ECA9A91DD4217" />
            <ComponentRef Id="cmp6B9E4B7B6F710D7077171BCE0B96A90A" />
            <ComponentRef Id="cmp5959CF1572C71417D536C491A996C6DE" />
            <ComponentRef Id="cmpCC960E9F3DDDE1600206003C43FFE663" />
        </ComponentGroup>
    </Fragment>
    <Fragment>
        <DirectoryRef Id="AzureApplicationSDK">
            <Directory Id="dir67745C9C3FA1B31D9AF8883D12D8FBD8" Name="Doc">
                <Component Id="cmpCDCC386748AE7BEFE7C2F4E764390254" Guid="A46C5689-42D1-41CA-AD71-B2A416FA9571">
                    <File Id="fil3B7DFCD3444314759F8617411F7EE08C" KeyPath="yes" Source="SourceDir\Azure Applications SDK v1 Cascade Tables Getting Started Guide.docx" />
                </Component>
                <Component Id="cmp6EC513AE37CCAE66CEA96577E2384AFA" Guid="697C1B04-5279-4B31-9600-F3BCA4C1AD06">
                    <File Id="filFDDD2C48EF5C14BA924C4272E4D9D490" KeyPath="yes" Source="SourceDir\Azurite Identity.docx" />
                </Component>
                <Component Id="cmp0C9D9450CB94FF74C6E29C1C3F6D16D5" Guid="1C61C6C5-60F0-41A5-B229-093419E5F767">
                    <File Id="fil4C736D0525C45780C242DA3BCA6823BA" KeyPath="yes" Source="SourceDir\Mercurius messaging how-to.docx" />
                </Component>
                <Component Id="cmp314DEE3E909157F47FDF963DCC04D2AC" Guid="FD9BD847-5B89-42EA-A178-451AC8B822F4">
                    <File Id="fil841FCFCD72670AEF83A89B6724126546" KeyPath="yes" Source="SourceDir\Nexus Notes.pptx" />
                </Component>
                <Component Id="cmpBC5FB761D7B0DA99F96ECA9A91DD4217" Guid="2424B541-D40B-4D2D-938E-0AC5C9C2A773">
                    <File Id="fil8D9E68E77FC45E6F50191FF6F20F2039" KeyPath="yes" Source="SourceDir\Owner Powershell Snapin.docx" />
                </Component>
                <Component Id="cmp6B9E4B7B6F710D7077171BCE0B96A90A" Guid="E467FD03-EFB4-4E4F-9A34-75540BEB1B1C">
                    <File Id="filB48A598247AE4A63638F96A69A545EE4" KeyPath="yes" Source="SourceDir\SDK First Look.pptx" />
                </Component>
                <Component Id="cmp5959CF1572C71417D536C491A996C6DE" Guid="27890FBC-2822-4061-A086-E9E539F58A64">
                    <File Id="fil9CCA5FE9338BD9EB6E1E2B4F685D9F16" KeyPath="yes" Source="SourceDir\Unit Tests.docx" />
                </Component>
                <Component Id="cmpCC960E9F3DDDE1600206003C43FFE663" Guid="D9B8BFB9-3F3B-40FE-A3E9-C5E1669E529A">
                    <File Id="fil98D1506B9A1C3AD2D9D03EA43BEEB80A" KeyPath="yes" Source="SourceDir\Using Nexus.docx" />
                </Component>
            </Directory>
        </DirectoryRef>
    </Fragment>
</Wix>

在我的主 .wxs 文件中,我有以下内容:

<Feature Id="MainApplication" Title="zure Application SDK" Level="1">
    <ComponentRef Id="Doc"/>
</Feature>

我执行

C:\Program Files (x86)\Windows Installer XML v3\bin\Light.exe -cultures:null -ext "C:\Program Files (x86)\Windows Installer XML v3\bin\WixUIExtension.dll" -ext "C:\Program Files (x86)\Windows Installer XML v3\bin\WixNetFxExtension.dll" -out "c:\source\Azure Applications SDK\Bespin\QADrop\QADropInstaller\bin\Release\QADropInstaller.msi" -pdbout "c:\source\Azure Applications SDK\Bespin\QADrop\QADropInstaller\bin\Release\QADropInstaller.wixpdb" -v obj\Release\QADropInstall.wixobj obj\Release\Doc.wixobj 

我收到以下错误

Error   21  Unresolved reference to symbol 'Component:Doc' in 
section 'Product:CF56D65B-BE0D-4719-BEFD-5DC04F7AD7FC'.   
c:\source\Azure Applications SDK\Bespin\QADrop\QADropInstaller\QADropInstall.wxs
160 1   Azure Application SDK Installer

谁能告诉我我做错了什么?

【问题讨论】:

【参考方案1】:

Fragment 应该有一个ComponentGroup,其中包含所有生成的Components(如果没有,请尝试将-cg 开关添加到热)。

然后使用ComponentGroupRef 而不是ComponentRefFeature 下你想要安装所有东西。

最后,编译所有.wxs 文件(包括来自heat.exe 的文件),然后将所有生成的.wixobj 文件添加到light.exe 命令行。您列出的错误通常是因为您忘记在命令行中添加.wixobj.wixlib

【讨论】:

如何让 Wix Heat.exe 保留自定义文件 ID?

】如何让WixHeat.exe保留自定义文件ID?【英文标题】:HowtomakeWixHeat.exeretaincustomfileid?【发布时间】:2019-07-2311:21:38【问题描述】:我有一个ASP.NET核心应用程序,我正在为其创建WIX安装程序。我正在使用Heat生成所有文件:<!--Remov... 查看详情

Wix、Heat 和 Wxi 文件

...递-var和目录名称,但这些变量是在我的.wxi文件中定义的如何在热生成的wxs文件中包含.wxi文件。因为每次构建时都会生成此文件。【问题讨论】:我想我找到了解决此问题的另一个选项。使用- 查看详情

Wix 资源收集工具“Heat”。如何获取具有动态名称的文件,例如构建时生成的 Microsoft 运行时文件

】Wix资源收集工具“Heat”。如何获取具有动态名称的文件,例如构建时生成的Microsoft运行时文件【英文标题】:Wixresourceharvestingtool"Heat".HowtoharvestfileswithdynamicnamelikeMicrosoftruntimefilesgeneratedonbuild【发布时间】:2020-01-2016:29:... 查看详情

Wix Heat 输出没有像我想要的那样引用目录

...部件。我运行的程序是,当我在较小的目录上运行heat以创建单个组件时,源路径不正确。我将举一个例 查看详情

Wix Installer Heat.exe 错误 参数“exePath”无效

...作者服务,我将其作为Windows服务运行。现在我想使用Wix创建一个安装程序,但是当我尝试收集所有需要的DLL进行安装时,我收 查看详情

WIX - Heat.exe - Heat.exe 是不是支持多种多收获类型

】WIX-Heat.exe-Heat.exe是不是支持多种多收获类型【英文标题】:WIX-Heat.exe-DoesHeat.exesupportmultiplemultipleharvesttypeWIX-Heat.exe-Heat.exe是否支持多种多收获类型【发布时间】:2016-09-0903:35:38【问题描述】:我想使用Heat.exe命令构建一个WIX文... 查看详情

WiX 安装程序:将 xslt 与 heat.exe 一起使用时,如何在还使用匹配属性时找到匹配的子字符串?

】WiX安装程序:将xslt与heat.exe一起使用时,如何在还使用匹配属性时找到匹配的子字符串?【英文标题】:WiXInstaller:Usingxsltwithheat.exehowdoIfindamatchingsubstringwhenalsousingamatchattribute?【发布时间】:2020-02-1322:34:44【问题描述】:我有... 查看详情

WiX 安装程序:使用 xslt 和 heat.exe 如何在找到父/子匹配后更改父 ID 的值?

】WiX安装程序:使用xslt和heat.exe如何在找到父/子匹配后更改父ID的值?【英文标题】:WiXInstaller:Usingxsltwithheat.exehowdoIchangethevalueoftheparentIdafterfindingaparent/childmatch?【发布时间】:2019-12-0502:49:03【问题描述】:我有以下来源:<Dir... 查看详情

如何使用 Wix 和项目参考部署本机映像 (NGen)

】如何使用Wix和项目参考部署本机映像(NGen)【英文标题】:Howtodeploynativeimages(NGen)usingWixandprojectreferences【发布时间】:2011-06-0811:21:27【问题描述】:我正在使用Wix/Votive为我的.NET解决方案构建安装程序。我使用项目引用(内部使... 查看详情

如何创建将执行多个 msi/exe 的单个 Wix 安装程序?

】如何创建将执行多个msi/exe的单个Wix安装程序?【英文标题】:HowtocreatesingleWixinstallerwhichwillexecutemultiplemsi/exe?【发布时间】:2013-05-2712:53:46【问题描述】:我创建了一个Wix引导程序设置应用程序,它会从提到的位置顺序安装两... 查看详情

wix heat 使用 xsl 文件移除命名空间

】wixheat使用xsl文件移除命名空间【英文标题】:wixheatremovenamespaceusingxslfile【发布时间】:2014-07-0620:56:10【问题描述】:这是我的预构建脚本:"%WIX%\\bin\\heat.exe"dir"$(SolutionDir)Export\\Release\\SkyCam\\Config"-t"$(SolutionDir)IQStudioInstaller\\Simu... 查看详情

如何在 WiX 安装程序中将应用程序添加为防火墙例外

】如何在WiX安装程序中将应用程序添加为防火墙例外【英文标题】:HowtoaddanapplicationasFirewallexceptioninWiXinstaller【发布时间】:2013-07-0709:43:47【问题描述】:我有一个需要安装大量文件的安装程序。我正在使用heat.exe来收集所有文... 查看详情

如何在 Wix(命令行)中引用热量输出(wxs)

】如何在Wix(命令行)中引用热量输出(wxs)【英文标题】:HowtoReferenceaHeatOutput(wxs)inWix(CommandLine)【发布时间】:2016-08-2617:01:39【问题描述】:我正在使用heat.exe生成一个.wxs文件,以将文件包含在我的主安装程序中。我有两个问... 查看详情

如何在 WIX 中使用 msi/Setup.exe 包含先决条件

】如何在WIX中使用msi/Setup.exe包含先决条件【英文标题】:Howtoincludeprerequisiteswithmsi/Setup.exeinWIX【发布时间】:2013-07-0412:11:11【问题描述】:我正在尝试将我的包合并到一个单独的安装EXE文件中并将其上传到Internet。我创建了一个M... 查看详情

在 WIX 迁移中管理用户配置

...主要是Windows服务EXE的项目。我们正在使用WIX(使用heat)创建安装程序,该安装程序会创建相关文件并将EXE注册到Windows服务。我们已经到了实现安装程序升级逻辑的地步,这主要是JustWorks(TM)通过在.wxs文件中设置Prod 查看详情

蜡烛.exe 访问被拒绝

...2015-11-0914:03:24【问题描述】:我正在尝试使用WIX安装程序创建安装程序。首先,我在VS2015中创建了一个新的WIX安装程序,然后使用heat命令创建了一个额外的wxs文件。现在我想使用candle.exe命令将生成的文件添加到WIX项目中,但是... 查看详情

Wix 重大升级,无论文件版本较新,都替换文件

...装的文件在预构建中使用heat.exe收集。当前(旧)msi文件包含一个文件nlog.dll(随NuGet包v4 查看详情

将 Visual Studio 安装项目转换为 WIX

...我想知道是否有人知道将使用标准VisualStudio2010安装项目创建的安装项目转换为WIX项目是多么容易。此安装项目也有一个自定义操作dll。我读过关于Heat的文章,但我不确定它的作用。【问题讨论】:【参考方案1】:我将这个过程... 查看详情