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

问题描述 投票:0回答:1

我在从 WiX v3 升级到 v4 时遇到了这个问题,并想提供一个对我有用的答案,因为我在这里没有找到任何答案。

问题:

就我而言,当源代码发生更改时,我试图自动化升级安装程序的过程。所以我做了一个带有几个目标的 setup.build 。他们包括

  1. 发布我的网络应用程序
  2. 收获它
  3. 构建安装程序

问题出现在收获部分之后,因为在构建 WiX v4 中的安装程序时,它抱怨在 v3 的收获文件中添加的命名空间。

该怎么办?

msbuild wix heat
1个回答
0
投票

我对此的回答也许不是那么美丽,但很简单。在我的 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 新收获方法的头痛。我希望这可以帮助下一个可能遇到这个问题的人。

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