1

我是 nuget 包发布的新手。

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

我了解这两个选项content以及lib指定target分发文件时的情况。

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

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

问题是,

  1. 用户可以选择要获得什么吗?dll还是源文件?

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

我希望为所有上述平台提供程序集(首选)或源代码。二进制文件本身具有一些不调用任何平台特定代码的功能,我们假设它是嵌入在 DLL 中的 HelloWorld 类。

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

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

3

您可以制作 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 开发者可以使用相同的包,并且他们得到不同的程序集,无论是专门为他们的框架构建的。

于 2017-03-05T20:10:01.400 回答