我正在构建一个模块化的.NET核心应用程序,它可以在运行时使用MEF加载扩展。我有2个项目,一个是我希望能够在运行时加载的库,然后我有我的主应用程序将进行加载。
我的库项目有一些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>
答案 0 :(得分:20)
为了使构建过程将NuGet包中所有引用的dll文件从缓存文件夹复制到构建输出中,请在<PropertyGroup>
中设置此属性:
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>