MEFを使用して実行時に拡張機能をロードできるモジュール式の.NETコアアプリケーションを構築しています。私は2つのプロジェクトを持っています。1つは実行時にロードできるようにしたいライブラリで、次にロードを実行するメインアプリケーションがあります。
私のライブラリプロジェクトにはいくつかのNuget依存関係があります。実行時にライブラリを読み込むには、実行時にライブラリの隣でこれらのNuget依存関係を使用できるようにする必要がありますが、VS2017を使用してビルドすると、これらのNuget DLLが出力の一部として含まれません。
ライブラリをビルドするときにNuget DLLを含めるにはどうすればよいですか?
編集:dotnet publish
およびdotnet pack
ですが、どちらも私にDLLを含むnupkg
ファイルだけを作成し、それに必要なnuget DLLは含めません。また、実行時にnupkg
ファイルを非常に簡単にロードできません。そのため、結果のアセンブリ自体を自分で取得したいのです。
それは価値があるもののために、これは私のcsprojがどのように見えるかです:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp1.1</TargetFramework>
<AssemblyName>JSON.plugin</AssemblyName>
<IncludeBuiltProjectOutputGroup>true</IncludeBuiltProjectOutputGroup>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Composition" Version="1.0.31" />
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\BDDGen.Types\BDDGen.Types.csproj" />
</ItemGroup>
</Project>
ビルドプロセスで、参照されているすべてのdllファイルをNuGetパッケージからキャッシュフォルダーからビルド出力にコピーするには、このプロパティを<PropertyGroup>
:
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>