wix light.exe找不到类型为''的文件

时间:2017-08-16 10:18:23

标签: c# wix .net-core

我正在尝试构建一个安装了一个dotnet控制台应用程序作为Windows服务的wix安装程序。

我已将以下HeatDirectory任务添加到.wixproj文件

<Target Name="BeforeBuild">
<Exec Command="dotnet publish ..\..\MySolution\MyProject\MyProject.csproj -c $(Configuration) -r win10-x64" />
<PropertyGroup>
  <LinkerBaseInputPaths>..\..\MySolution\MyProject\bin\$(Configuration)\netcoreapp1.1\win10-x64\publish</LinkerBaseInputPaths>
  <DefineConstants>BasePath=..\..\MySolution\MyProject\bin\$(Configuration)\netcoreapp1.1\win10-x64\publish</DefineConstants>
</PropertyGroup>
<HeatDirectory OutputFile="MyProject.wxs" DirectoryRefId="PROJECTDIR" ComponentGroupName="cmpMyProject" SuppressCom="true" Directory="..\..\MySolution\MyProject\bin\$(Configuration)\netcoreapp1.1\win10-x64\publish" SuppressFragments="true" SuppressRegistry="true" SuppressRootDirectory="true" AutoGenerateGuids="false" GenerateGuidsNow="true" ToolPath="$(WixToolPath)" PreprocessorVariable="var.BasePath" Transforms="RemovePdbs.xslt" />
  </Target>

然而,当我去构建Wix项目时,我收到以下错误

  

系统找不到类型为''的文件'.... \ MySolution \ MyProject \ bin \ Debug \ netcoreapp1.1 \ win10-x64 \ publish \ Microsoft.AspNetCore.Authentication.dll'。

我看过我的MyProject.wxs并且没有hot命令生成的拼写错误,并且有几个.dll以同样的方式引用,所以我不明白为什么它突然变成了问题的中途它正在发生。

有人能解释一下这个问题吗?

更新

我把

的绝对文件路径
  

C:\源\ MySolution ...

现在很开心。有没有更好的方法来引用项目?如果同事从GIT中检查出来并尝试在不同的文件结构中构建它,他们最终将不得不更改文件路径......

1 个答案:

答案 0 :(得分:1)

@Craig,您是否在wix项目中引用了控制台应用程序?看起来你没有。

我问你的原因是,如果你将项目添加到安装项目引用中,你也可以简单地使用$(var.MyProjectName.TargetPath)。如果您将其添加到参考文献中,这将指向解决方案的根源。