我正在构建一个模块化的 .NET 核心应用程序,它可以使用 MEF 在运行时加载扩展。我有 2 个项目,一个是我希望能够在运行时加载的库,然后我有一个将执行加载的主应用程序。
我的库项目有一些 Nuget 依赖项。为了在运行时加载我的库,我需要这些 Nuget 依赖项在运行时在库旁边可用,但使用 VS2017 构建不包括这些 Nuget DLL 作为输出的一部分。
如何在构建库时包含 Nuget DLL?
编辑:我试过 dotnet publish
和 dotnet pack
,但这两个都让我成为一个 nupkg
文件,只包含我的 DLL 而不是我需要的 nuget DLL。另外,我不能很容易地在运行时加载 nupkg
文件,这就是为什么我想自己获取生成的程序集。
就其值(value)而言,这就是我的 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>
最佳答案
为了让构建过程从缓存文件夹中的 NuGet 包中复制所有引用的 dll 文件到构建输出中,在 <PropertyGroup>
中设置此属性。 :
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
关于c# - 在我的构建输出中包含 Nuget 依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45464271/