我在从 WiX v3 升级到 v4 时遇到了这个问题,并想提供一个对我有用的答案,因为我在这里没有找到任何答案。
问题:
就我而言,当源代码发生更改时,我试图自动化升级安装程序的过程。所以我做了一个带有几个目标的 setup.build 。他们包括
问题出现在收获部分之后,因为在构建 WiX v4 中的安装程序时,它抱怨在 v3 的收获文件中添加的命名空间。
该怎么办?
我对此的回答也许不是那么美丽,但很简单。在我的 Harvesting 任务中,我添加了一个额外的命令,用正确的命令替换 Wearg 命名空间字符串。像这样:
<Target Name="Harvest">
<!-- Harvest all content of published result -->
<Exec
Command='$(WixPath)heat dir $(Publish) -dr INSTALLFOLDER -ke -srd -cg MyWebComponents -var var.publishDir -gg -out $(WebSiteContentCode)'
ContinueOnError="false"
WorkingDirectory="." />
<Exec
Command='powershell.exe -Command "(Get-Content -Path \"path\to\HarvestedContent.wxs\") -replace \"http://schemas.microsoft.com/wix/2006/wi\", \"http://wixtoolset.org/schemas/v4/wxs\" | Set-Content -Path \"path\to\HarvestedContent.wxs\""'
ContinueOnError="false"
WorkingDirectory="." />
</Target>
这对我来说非常有效,您不必经历学习 WiXv4 新收获方法的头痛。我希望这可以帮助下一个可能遇到这个问题的人。