Wix 安装程序 Heat.exe 错误参数 "exePath" 无效

Wix Installer Heat.exe error Parameter "exePath" is invalid

我正在构建一个独立的 .Net Core worker 服务,我 运行 作为 windows 服务。现在我想使用 Wix 创建一个安装程序,但是当我尝试收集安装所需的所有 DLL 时,出现以下错误:

An error occurred loading a configuration file: The parameter 'exePath' is invalid.

我读过 this post,其中指出 heat.exe 可能已损坏。但我通过 NuGet (3.11.2) 下载了这些工具,理论上应该没问题。我的 Beforebuild 目标如下所示:

<Exec Command="dotnet publish ..\Parlando.PVS.PackingSlipService\Parlando.PVS.PackingSlipService.csproj -c $(Configuration) -r win10-x86" />
<ItemGroup>
  <LinkerBindInputPaths Include="%(ProjectReference.RootDir)%(ProjectReference.Directory)bin$(Configuration)\%(ProjectReference.TargetFrameworkIdentifier)\win10-x86\publish" />
</ItemGroup>
<HeatDirectory 
DirectoryRefId="INSTALLFOLDER" 
OutputFile="$(ProjectDir)\HeatGeneratedFileList.wxs" 
Directory="..\Parlando.PVS.PackingSlipService\bin\Release\netcoreapp3.1\win10-x86\publish" 
ComponentGroupName="HeatGenerated" 
ToolPath="$(WixToolPath)" 
AutogenerateGuids="True" 
SuppressCom="True" 
SuppressRegistry="True" 
SuppressFragments="True" 
SuppressRootDirectory="True"
NoLogo="true"   />
<ItemGroup>
  <Compile Include="$(ProjectDir)\HeatGeneratedFileList.wxs" Condition="'%(ProjectReference.IsDotnetSDKProject)' == 'True'" />
</ItemGroup>

这应该会生成一个 .wxs 文件,我在安装服务时在 Product.wxs 文件中引用了该文件。我的 product.wxs 这样做如下:

<ServiceInstall
      Id="ServiceInstaller"
      Type="ownProcess"
      Name="Parlando.PVS.PackingSlipService"
      DisplayName="Parlando.PVS.PackingSlipService"
      Description="Service installed by Parlando to create packingslips and invoices."
      Start="auto"
      Account="LocalSystem"
      ErrorControl="normal" />
    <ServiceControl
      Id="ServiceInstaller"
      Start="install"
      Stop="both"
      Remove="uninstall"
      Name="Parlando.PVS.PackingSlipService" />
  </Component>    
  <ComponentRef Id="HeatGenerated" />

我如何使用 heat.exe 才能访问 Product.wxs 中的 DLL 列表并通过 MSI 安装我的服务?

显然,此错误与为 Wix 安装程序提供的设置无关,而是与安装 Wix 的机器有关。

在另一台机器上测试我的程序后,一切正常。