我正在寻找一些帮助来正确设置我的Visual Studio for Mac项目。我是Visual Studio Mac的新手,并希望能在正确的道路上行走。
我有一个大型类库,最初是在Windows上的Visual Studio 2017中开发的。我想使用大部分代码来开发iOS应用程序。此类库需要引用:
我尝试将该代码移植到Visual Studio for Mac中的可移植类库中。但是PCL不允许你引用上面的程序集(除非我遗漏了什么)。
然后我将其移植到.NET Library项目(其他 - > .NET - > Library)项目。但是,我的iOS应用程序将不允许引用该项目类型,因为VS for Mac表示它具有“不兼容的目标框架:.NETFramework,Version-v4.6.1”。
我应该为这个类库使用什么项目类型,以便它可以引用所需的.NET程序集,并且可以从我的iOS应用程序中引用它?
答案 0 :(得分:1)
可能的选择:
除了System.Web之外,还有一些PCL配置文件包含您正在寻找的程序集。您可以通过查看PCL目录来查看Mac上可用的程序集:
/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/xbuild-frameworks/.NETPortable
如果您打开终端窗口,则可以运行搜索find . -name "System.ServiceModel.Web.dll"
,或使用Finder浏览文件夹以查找包含所需程序集的PCL配置文件。
另一种可能性是使用.NET Standard 2.0项目,该项目有许多可以使用的程序集,并支持由Xamarin.iOS项目引用。您可能需要安装一些其他System。* NuGet包来提供所需的程序集。
记录了.NET Standard 2.0中可用的命名空间:
https://docs.microsoft.com/en-us/dotnet/api/?view=netstandard-2.0
另一种选择是使用共享项目。这本身没有程序集引用,但基本上是共享代码,编译到引用它的所有项目中。在这里,您可以将#ifdefs用于任何iOS或Android特定的代码。