我正在爲Android和iOS開發一個Xamarin.Forms應用程序。 pcl項目增長很多,並且安裝了許多nuget軟件包,如FluentValidation,SQlite和Newtonsoft.Json。平臺特定的項目只有像自定義渲染器和東西的幾行代碼。他們唯一的參考是SQlite。Xamarin.Forms程序集引用
現在編譯爲Android當這工作得很好。但是,當嘗試爲iOS構建時,出現錯誤 - >無法解析引用(System.EnterpriseServices.Wrapper.dll
)。
我的問題是不特定於這個dll,而且我想知道它是如何真正起作用。我假設,我可以在pcl項目中安裝任何我想要的軟件包。是否有限制?包裝必須與Xamarin.iOS/Xamarin.Android兼容嗎?我如何能夠跟蹤,dll實際來自哪裏?
爲什麼它在Android中工作,但不在iOS中?
據我所知,'System.EnterpriseServices.Wrapper.dll'是本地C++庫,並且只能基於Win32的,所以你不應該在你的任何Android或iOS應用來引用它,並在你的PCL沒有被引用圖書館。我會尋找不良的參考資料,並將其刪除(和/或找到您安裝的軟件包將其作爲軟件包參考。 – SushiHangover
@SushiHangover這就是問題所在。我不知道在解決方案的任何位置使用參考。 – greenhoorn
在OS-X/Linux上,您可以執行「find。-name」* .dll「-print0 | xargs -0 -n 1 -I%ikdasm -assemblyref」%「| grep」Name =「」從你的軟件包目錄中列出所有ref'd程序集。在Windows上,你可以使用'Ildasm.exe'(有關使用方法,請參考:https://msdn.microsoft.com/en-us/library/f7dy01k1(v = vs.110).aspx)AsmSpy,使用'--all'選項在Windows上也能很好地工作:https://github.com/mikehadlow/AsmSpy – SushiHangover