我正在尝试构建一个安装了一个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中检查出来并尝试在不同的文件结构中构建它,他们最终将不得不更改文件路径......
答案 0 :(得分:1)
@Craig,您是否在wix项目中引用了控制台应用程序?看起来你没有。
我问你的原因是,如果你将项目添加到安装项目引用中,你也可以简单地使用$(var.MyProjectName.TargetPath)。如果您将其添加到参考文献中,这将指向解决方案的根源。