2017-08-16 33 views
0

我正在尝试构建一个安装dotnet控制台应用程序作为Windows服务的wix安装程序。wix light.exe找不到类型为''的文件

当我去建维克斯项目中,我得到以下错误

系统无法找到文件我已经添加了以下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> 

然而'.... \ MySolution \ MyProject \ bin \ Debug \ netcoreapp1.1 \ win10-x64 \ publish \ Microsoft.AspNetCore.Authentication.dll'类型为''。

我看了一下我的MyProject.wxs中都没有被热命令生成错别字和有同样的方式引用多个.dll的,所以我不明白为什么它突然成为一个问题无论发生什么事情,一切都在中途。

请问谁能解释一下这个问题?

UPDATE

我把

C绝对文件路径:\来源\ MySolution ...

而且它现在愉快地建设。有没有更好的方法来引用一个项目?如果一个同事检查了GIT,并试图建立它在不同的文件结构,他们最终将不得不改变文件路径...

+1

您是否在wix项目中引用了您的控制台应用程序? – Bryan

+0

@Bryan我没有没有。现在添加它后,我发现我可能在目录路径 – Craig

+1

中有太多“../”,您也可以简单地使用$(var.MyProjectName.TargetPath)。这将指向您的解决方案的根源,如果您将其添加到您的参考。 – Bryan

回答

1

@Craig,你有你的控制台应用程序中引用的wix项目?看起来你没有。

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

相关问题