2017-11-25 197 views
1

我正在寻找一些帮助来正确设置我的Visual Studio for Mac项目。我是新来的Visual Studio Mac,并会欣赏沿着正确的道路推。什么项目类型可以引用.NET程序集,并可以通过iOS Xamarin应用程序引用

我有一个大型的类库,最初是在Windows上的visual studio 2017中开发的。我想使用大部分代码来开发iOS应用程序。这个类库要求引用:

  • 系统
  • System.Runtime.Serialization
  • System.ServiceModel
  • System.ServiceModel.Web
  • 的System.Web。

我试图将该代码移植到Visual Studio for Mac中的可移植类库中。但是,PCL不允许你引用上面的程序集(除非我错过了某些东西)。

所以我然后将它移植到.NET库项目(其他 - > .NET - >库)项目。但是,我的iOS应用程序不允许引用该项目类型,因为VS for Mac表示它有一个“不兼容的目标框架:.NETFramework,版本v4.6.1)。

我应该使用什么样的项目类型类库,使其可以参考所需的.NET程序集,它可以从我的iOS应用程序引用

回答

1

可能的选项:?

  1. 使用不同的便携式类库(PCL)简介
  2. 使用.NET标准项目。
  3. 使用共享项目。

对于除System.Web以外的所有内容,都有PCL配置文件,其中包含您正在查找的程序集。您可以看到哪些组件都可以在Mac上通过查看PCL目录:

/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/xbuild-frameworks/.NETPortable

如果您在那里打开一个终端窗口,您可以运行搜索,find . -name "System.ServiceModel.Web.dll"或使用Finder浏览文件夹以查找具有所需组件的PCL配置文件。

另一种可能性是使用.NET标准2.0项目,该项目有许多可用于Xamarin.iOS项目并被支持引用的程序集。您可能需要安装一些其他System。* NuGet包来提供所需的程序集。

在.NET 2.0标准中可用的命名空间被记载:

https://docs.microsoft.com/en-us/dotnet/api/?view=netstandard-2.0

另一种选择是使用共享的项目。这本身没有程序集引用,但基本上是共享代码,它被编译到引用它的所有项目中。在这里,您可以使用#ifdefs来处理任何iOS或Android特定的代码。

相关问题