将.NET Core支持添加到现有类库

时间:2016-10-06 04:38:53

标签: .net .net-core asp.net-core-1.0

我有一个我在.NET 4.5中编写的现有开源库,我想从中创建一个NuGet。问题是这个NuGet包只适用于.NET 4.5应用程序。

我想要做的是在同一个NuGet上支持.NET 4.5和.NET Core(我已经看过那些使用JSON.NET的软件包) - 如何添加对现有NuGet的支持?我如何在单个类库中支持多个.NET版本?

1 个答案:

答案 0 :(得分:1)

您可以继续使用csproj for net45 target并添加针对“net45”和“netstandard1.x”框架的project.json(使用project.json of my library作为示例):

  "frameworks": {
    "net45": {
      "frameworkAssemblies": {
        "System.Data": "",
        "System.ComponentModel.DataAnnotations" : ""
      },
      "buildOptions": {
        "define": []
      }
    },
    "netstandard1.5": {
      "dependencies": {
        "NETStandard.Library": "1.6.0",
        "System.Data.Common": "4.1.0",
        "System.Reflection": "4.1.0",
        "System.Reflection.Primitives": "4.0.1",
        "System.Threading": "4.0.11",
        "System.Threading.Tasks": "4.0.11",
        "System.ComponentModel.Annotations": "4.1.0" 
      },
      "buildOptions": {
        "define": [ "NET_STANDARD" ]
      }
    }

请注意,您可以为net45或netcore特定代码段定义条件编译常量。

如果你有project.json,你可以使用以下命令准备包含net45和netstandard版本的nuget包:

> dotnet pack --configuration Release

不要忘记“dotnet pack”不使用来自nuspec文件的信息,并且所有元数据都应该出现在project.json中。