c# - nuget 包 dll 或源文件

标签 c# nuget .net-core nuget-spec

<分区>

我是 nuget 包发布的新手。

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

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

因为到目前为止我还无法将 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/

enter image description here

enter image description here

最佳答案

您可以制作 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 开发人员可以使用相同的包,并且他们获得不同的程序集,以专门为其框架构建的程序集为准。

关于c# - nuget 包 dll 或源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42603674/

相关文章:

c# - .NET Framework 和 Core BinaryFormatter 的兼容性

github - 在 GitHub Codespaces 中运行 ASP.NET Core Web 应用程序会出现 502 Bad Gateway

c# - .NET Core 使用 MongoDb 配置 OpenIddict

c# - 您使用常规构建作为编码工具吗?

c# - Asp.Net C# 对象相关问题

c# - 模拟用户操作以防止系统被视为空闲的最简单方法

visual-studio - 跨多个项目和解决方案共享 NuGet 包

nuget - VS 2015 CTP 6 Nuget 包源

c# - 转换时避免 NullReferenceException 的首选做法?

nuget - 我是否需要将标记为依赖项的 DLL 添加到 nuget lib 文件夹