在我的构建输出中包含Nuget依赖项?

时间:2017-08-02 14:55:02

标签: c# visual-studio .net-core visual-studio-2017 mef

我正在构建一个模块化的.NET核心应用程序,它可以在运行时使用MEF加载扩展。我有2个项目,一个是我希望能够在运行时加载的库,然后我有我的主应用程序将进行加载。

我的库项目有一些Nuget依赖项。为了在运行时加载我的库,我需要在运行时在库旁边使用这些Nuget依赖项,但使用VS2017构建不包含这些Nuget DLL作为输出的一部分。

如何在构建库时包含Nuget DLL?

编辑:我已经尝试了dotnet publishdotnet 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>

1 个答案:

答案 0 :(得分:20)

为了使构建过程将NuGet包中所有引用的dll文件从缓存文件夹复制到构建输出中,请在<PropertyGroup>中设置此属性:

<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>