我有一个我在.NET 4.5中编写的现有开源库,我想从中创建一个NuGet。问题是这个NuGet包只适用于.NET 4.5应用程序。
我想要做的是在同一个NuGet上支持.NET 4.5和.NET Core(我已经看过那些使用JSON.NET的软件包) - 如何添加对现有NuGet的支持?我如何在单个类库中支持多个.NET版本?
答案 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中。