2017-11-25 22 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特定的代碼。

相關問題