2017-08-16 17 views
0

Windowsサービスとしてdotnetコンソールアプリケーションをインストールするwixインストーラをビルドしようとしています。私はウィックスのプロジェクトを構築するために行くとき、私はwix light.exeが ''タイプのファイルを見つけられません

<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> 

.wixprojファイルに次のHeatDirectoryタスクを追加しました

は、しかし、私は次のエラー

システムがファイルを見つけることができません取得します'.... \ MySolution \ MyProject \ bin \ Debug \ netcoreapp1.1 \ win10-x64 \ publish \ Microsoft.AspNetCore.Authentication.dll'に ''を入力します。

私はMyProject.wxsを見たことがあります。ヒートコマンドによって生成されたタイプミスもなく、いくつかの.dllが同じ方法で参照されているので、なぜ突然問題になるのか分かりませんそれが起こっていることは何とか途中で。

誰でもこの問題について少し気をつけてください。

UPDATE

私は

Cの絶対ファイルパスに置く:\ソース\ MySolution ...

をそして、それは楽しそうになりまし構築しています。プロジェクトを参照する良い方法はありますか?同僚がGITをチェックして別のファイル構造でビルドしようとすると、ファイルのパスを変更する必要があります...

+1

wixプロジェクトでコンソールアプリケーションが参照されていますか? – Bryan

+0

@ブライアン私はしなかった。今すぐ追加したので、ディレクトリパスに "../"が多すぎる可能性があります。 – Craig

+1

$(var.MyProjectName.TargetPath)も使用できます。これは、参照に追加した場合は、ソリューションのルートを指します。 – Bryan

答えて

1

@Craig、wikiで参照されているコンソールアプリケーションはありますかプロジェクト?あなたがしなかったように見えます。

私があなたに求めている理由は、プロジェクトをセットアッププロジェクト参照に追加した場合、単に$(var.MyProjectName.TargetPath)を使用することもできます。これは、参照に追加した場合は、ソリューションのルートを指します。

関連する問題