如何在.Net核心中创建C#库,可以使用Nuget包在经典的.Net 4.6.2和.Net核心项目之间共享。我阅读了有关开发跨平台库的文档here。所以我设置我的project.json如下
{
"version": "1.0.0-*",
"frameworks": {
"netstandard1.6": {
"dependencies": {
"NETStandard.Library": "1.6.0"
}
},
"net462": {
}
}
}
然后我通过执行以下命令创建了nugect pckage
dotnet pack -c Release
然后发布了nuget包。我的包裹名称是DTO。
在我的traget .net核心项目中,我能够毫无问题地安装nuget包。但是,当我尝试在经典.net 4.6.2项目中安装软件包时,我收到错误
install-Package:无法安装包'DTO 1.0.0'。你是 尝试将此软件包安装到目标项目中 '.NETFramework,Version = v4.6.2',但包中不包含任何内容 程序集引用或与之兼容的内容文件 框架。有关更多信息,请与软件包作者联系。在线:1 char:1 + Install-Package DTO + ~~~~~~~~~~~~~~~~~~~ + CategoryInfo: 未指定:(:) [Install-Package],Exception + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand
请注意,nuget包托管在我的本地服务器上。
答案 0 :(得分:1)
你采取了正确的方向。如果您希望跨多个框架兼容,那么以.NET Standard为目标是正确的。
但是,您应该参考此矩阵以获取每个框架支持的.NET标准版本。
根据此表, .NET Framework 4.6.2支持.NET Standard 1.5 (不是您指定的1.6)。所以这是你的答案。
有关.NET Standard 1.5支持的程序集的更多详细信息,请访问以下链接: