我正在使用VS 2015。
我创建了一个PCL项目。 Class Library Portable(IOS,Android和Windows)。
这个PCL是一个简单的POCO类。
目标: .NET Framework 4.5,ASP.NET Core 1.0,Windows Phone Silverlight 8, Xamarin.Android,Xamarin.IOS
我的PCL被Xamarin.IOS应用程序引用,我想在我的Web API中使用相同的PCL。
我试图从ASP.NET 5 Web API引用这个PCL项目。
以下是我的project.json:
" dnx451":{ "依赖性&#34 ;: { " MyPCL":" 1.0.0 - *" } }
- >错误:无法解析依赖关系。
我已尝试在框架下添加以下内容,但没有运气。
".NETPortable,Version=v4.0,Profile=Profile111": {
"dependencies": {
"MyPCL": "1.0.0-*"
}
"frameworkAssemblies": {
"mscorlib": "",
"System": "",
"System.Core": ""
}
}
我也尝试过dnu恢复..仍然无效。
快速更新:
昨天我升级到了RC2。
它无法解决问题。在project.json中我现在有:
"dependencies":
{
"NETStandard.Library": "1.5.0-rc2-24027"
}
我在框架下添加了以下内容:
"netstandard1.5": {
"imports": "dnxcore50"
}
当我编译我的Web API项目时,我得到以下3个错误:
项目尚未恢复或恢复失败。 (虽然我确实运行了dotnet恢复)
该项目未列出' win10-x64,win81-x64,win8-x64,win7-x64'在'运行时'部分。
找不到框架的运行时目标' .NETStandard,Version = v1.5'兼容其中一个目标运行时:' win10-x64,win81-x64,win8-x64,win7-x64'
有人知道如何解决这个问题吗?
甚至可以从ASP.NET 5 Web API或MVC 6项目引用此PCL吗?
答案 0 :(得分:1)
我认为你最好的方法是:
将此PCL
升级到netstandard 1.3+
库。然而,这会强制您创建/升级到netcore 1.0+
MVC / API应用程序以使用interface INetCoreApp10 : INetStandard15
是netcore
项目的最佳类比(当前版本为1.1)。
有关如何升级的详细信息,您可以查看以下内容:https://blog.xamarin.com/net-standard-library-support-for-xamarin/
请注意,如果您这样做,您还可以使用Compatibility Shim
引用netstandard
库中的其他PCL。
https://docs.microsoft.com/en-us/dotnet/articles/standard/library#pcl-compatibility
回答你的问题:
甚至可以从ASP.NET 5 Web API或MVC 6项目引用此PCL吗?
是的。有很多方法可以做到这一点,我个人认为正确的方法是使用" new"在这种情况下,诸如netstandard
和netcore
之类的位。根据我的回答,你可以做多件事:
netstandard
,将API项目升级到netcore
。 netcore
项目可以轻松使用netstandard
项目。netcore
并使用Compatibility Shim
引用旧的PCL配置文件。netcore/netstandard
项目类型并在ASP.NET MVC 5 Web API project
中使用PCL。这也称为netframework
项目,而不是netcore
。即https://docs.microsoft.com/en-us/dotnet/articles/standard/choosing-core-framework-server