nuget 包 dll 或源文件

nuget package dll or source files

我是 nuget 包发布的新手。

正在进行的项目是一个 dot net 核心应用程序,它是一个开源项目。

在为分发文件指定 target 时,我理解 contentlib 这两个选项。

因为到目前为止,我无法将 dll 连接到 mac 上的 .net 核心 Web 应用程序,并且研究表明该选项是为 installation/deployment 提供源代码.

其次,桌面上的用户可以使用提供的程序集 dll 开发他们的项目。

问题是,

  1. 用户 select 可以得到什么? dll 或源文件?

  2. 我是否必须为每个 netstandard、netcore、net 和 uap 创建一个单独的程序集?

我想获得适用于上述所有平台的程序集(最好)或源代码。二进制文件本身有一些不调用任何平台特定代码的功能,我们假设它是一个嵌入 DLL 中的 HelloWorld class。

图片来自https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/

您可以制作 2 个单独的 NuGet 包:

  1. 包含库的一个。将其命名为 "Foo".
  2. 包含源代码的。将其命名为 "Foo.Sources".

然后套餐的用户可以通过选择他们想要的套餐来选择。

另一种选择是将您的 NuGet 包同时定位到桌面和 netstandard/netcoreapp。您将编译程序集两次,然后将单独的程序集包含在单个 NuGet 包中。网上有几篇很好的文章描述了这一点。这是一个:http://blog.csmac.nz/dotnetcore-multi-targeting/。 VS 2017 中新的 .csproj 格式允许您指定 <TargetFrameworks>net45;netstandard1.6</TargetFrameworks. 您可以`dotnet pack 然后桌面和 .NET Core 开发人员可以使用相同的包,并且他们获得不同的程序集,以专门为其框架构建的程序集为准。