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 的机器有关。
在另一台机器上测试我的程序后,一切正常。
我正在构建一个独立的 .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 的机器有关。
在另一台机器上测试我的程序后,一切正常。