nuget包dll或源文件

时间:2017-03-05 02:11:29

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

我是nuget包发布的新手。

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

在为分发文件指定content时,我提供了两个选项libtarget

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

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

问题是,

  1. 用户可以选择要获取的内容吗? dll或源文件?

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

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

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

    的图片

    enter image description here

    enter image description here

1 个答案:

答案 0 :(得分:3)

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

  1. 包含库的一个。将其命名为" Foo"。
  2. 包含源代码的一个。将其命名为" Foo.Sources"。
  3. 然后包的用户可以通过选择他们想要的包来选择。

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