【发布时间】:2018-01-09 21:09:50
【问题描述】:
我正在构建一个模块化的 .NET 核心应用程序,它可以使用 MEF 在运行时加载扩展。我有 2 个项目,一个是我希望能够在运行时加载的库,然后我有我的主应用程序来进行加载。
我的库项目有一些 Nuget 依赖项。为了在运行时加载我的库,我需要在运行时在库旁边提供这些 Nuget 依赖项,但使用 VS2017 构建时不会将这些 Nuget DLL 作为输出的一部分。
如何在构建库时包含 Nuget DLL?
编辑:我已经尝试过dotnet publish 和dotnet pack,但是这两个都使我成为一个nupkg 文件,只包含我的DLL,而不是我需要的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>
【问题讨论】:
-
命令行方式是执行
dotnet publish,而不是dotnet build。不确定 VS 是否有办法做到这一点(当然,它必须)。 -
dotnet publish为我构建了一个 .nupkg 文件,其中只有我的库 DLL,没有别的。 -
您是否尝试将您的引用嵌入到您的 DLL 中?也许看看
Costura.Fody。 -
不,但这可能是一种选择。我只想要我的 DLL 和它旁边依赖的 Nuget DLL。
-
@omajid 我之前在任何地方都没有得到
publish目录,但似乎在运行dotnet clean和dotnet publish之后,我的所有部门都在publish文件夹中,就像我一样通缉。谢谢你。 :)
标签: c# visual-studio .net-core visual-studio-2017 mef