如何在 Wix 中引用 heat.exe 生成的 wxs 文件中的文件元素
How to reference File element inside wxs file generated by heat.exe in Wix
我要为我的网络项目创建设置。我使用 http://blog.bartdemeyer.be/2013/10/create-an-installer-for-website-with-wix-part-1/ 作为参考。在文章中间,作者使用 heat.exe:
创建了一个名为 WebSiteContent.wxs
的文件
<Target Name="Harvest">
<!-- Harvest all content of published result -->
<Exec
Command='$(WixPath)heat dir $(Publish) -dr INSTALLFOLDER -ke -srd -cg MyWebWebComponents -var var.publishDir -gg -out $(WebSiteContentCode)'
ContinueOnError="false"
WorkingDirectory="." />
</Target>
运行msbuild后,文件包含以下内容:
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<!--...-->
<Fragment>
<ComponentGroup Id="MyWebWebComponents">
<!--...-->
<Component Id="cmpCDB7F4EFDEF1E65C3B12BEBAD7E4D7EA" Directory="INSTALLFOLDER" Guid="{7EA5DB39-513D-482B-9FDC-2F16FCE5E712}">
<File Id="fil8994620207C22CA15AF75ACDD6420C79" KeyPath="yes" Source="$(var.publishDir)\Web.config" />
</Component>
</ComponentGroup>
<!--...-->
</Fragment>
</Wix>
我想按照 Change XML node values from WiX 中的描述更改 web.config 文件内容的值,但我不知道如何将 WebSiteContent.wxs 文件之外的引用添加到 fil8994620207C22CA15AF75ACDD6420C79 元素。
我知道我可以将 xml 脚本添加到 WebSiteContent.wxs 文件。但是因为在每个构建中它都会被清理,所以我不想在每个构建中更改 WebSiteContent.wxs 文件。
如您引用的示例所示,在 属性 中使用带有 # 前缀的文件 ID。 heat 生成的文件 ID 在其位置规范方面是稳定的。
如果这样导致文件不可读,你可以给heat和XSL把文件id改成一个固定值。
我要为我的网络项目创建设置。我使用 http://blog.bartdemeyer.be/2013/10/create-an-installer-for-website-with-wix-part-1/ 作为参考。在文章中间,作者使用 heat.exe:
创建了一个名为WebSiteContent.wxs
的文件
<Target Name="Harvest">
<!-- Harvest all content of published result -->
<Exec
Command='$(WixPath)heat dir $(Publish) -dr INSTALLFOLDER -ke -srd -cg MyWebWebComponents -var var.publishDir -gg -out $(WebSiteContentCode)'
ContinueOnError="false"
WorkingDirectory="." />
</Target>
运行msbuild后,文件包含以下内容:
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<!--...-->
<Fragment>
<ComponentGroup Id="MyWebWebComponents">
<!--...-->
<Component Id="cmpCDB7F4EFDEF1E65C3B12BEBAD7E4D7EA" Directory="INSTALLFOLDER" Guid="{7EA5DB39-513D-482B-9FDC-2F16FCE5E712}">
<File Id="fil8994620207C22CA15AF75ACDD6420C79" KeyPath="yes" Source="$(var.publishDir)\Web.config" />
</Component>
</ComponentGroup>
<!--...-->
</Fragment>
</Wix>
我想按照 Change XML node values from WiX 中的描述更改 web.config 文件内容的值,但我不知道如何将 WebSiteContent.wxs 文件之外的引用添加到 fil8994620207C22CA15AF75ACDD6420C79 元素。
我知道我可以将 xml 脚本添加到 WebSiteContent.wxs 文件。但是因为在每个构建中它都会被清理,所以我不想在每个构建中更改 WebSiteContent.wxs 文件。
如您引用的示例所示,在 属性 中使用带有 # 前缀的文件 ID。 heat 生成的文件 ID 在其位置规范方面是稳定的。
如果这样导致文件不可读,你可以给heat和XSL把文件id改成一个固定值。