2012-08-11 39 views
5

我收到以下錯誤,而引用的DLL iTextSharp的Compliation錯誤在參照iTextSharp的DLL放在單爲Android

C:\Program Files\MSBuild\Novell\Novell.MonoDroid.Common.targets(2,2): Error: Exception while loading assemblies: System.IO.FileNotFoundException: Could not load assembly 'System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Perhaps it doesn't exist in the Mono for Android profile?

File name: 'System.Drawing.dll'

at Monodroid.Tuner.MonoDroidResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters)

at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(List`1 assemblies, AssemblyDefinition assembly)

at Xamarin.Android.Tasks.ResolveAssemblies.Execute() (Dashmate)

我也試圖添加System.Drawing.dll程序,但它仍然沒有解決 錯誤。

猜Mono.Android.dll內System.Drawing中與 System.Drawing.dll程序正由該iTextSharp的

回答

2

我從Xamarin

You cannot use System.Drawing.dll which is available only in full .NET profile. Mono for Android supports only its mobile-based profile which is almost the same as Silverlight

這樣的開發團隊這個答覆,我想,我們不能使用第三方的DLL它具有「System.Drawing中」類 :(

2

錯誤是告訴你的是,(管理)引用鏈接是不衝突能夠加載程序集。這個程序集需要滿足您所鏈接的代碼所需的一些引用。沒有它,鏈接器不能重寫更小的有效(即工作)程序集。

在這種情況下,它看起來像iTextSharp編譯對桌面框架程序集(即2.0.0.0版本是提示,對於Android版本的Mono將是2.1.x)。

通常解決這類問題是重新編譯該項目(iTextSharp的在這種情況下)針對單聲道爲Android提供的程序集。這樣,所有的引用都是針對M4A程序集的,並且鏈接程序能夠處理它們(因爲沒有東西會丟失,否則在編譯時會失敗)。

注意,它可能無法重新編譯,從源代碼,iTextSharp的,如果它從System.Drawing.dll要看的東西太多了。

Also I tried to add System.Drawing.dll , but it still did not resolve the error.

使用桌面組件是不太可能的工作(因爲它們依賴於不同的組件,不同類型的...)。

此外,Windows(或Mono)附帶的System.Drawing.dll不適用於Android的Mono,因爲它們依賴於不屬於Android的GDI +(或用於Mono的libgdiplus)。

Guess the System.Drawing within the Mono.Android.dll is conflicting with the System.Drawing.dll which is being referenced by the iTextSharp

沒有因爲單沒有裝配衝突的Android不艦船用System.Drawing.dll組裝。然而,一些類型(例如Rectangle[F]Point[F]Size[F])被包括(在另一個組件),其使用所述System.Drawing.*命名空間,因爲它們是有幫助的(和公知的),以.NET開發。

+1

喜我曾嘗試使用只有** ** System.Drawing.dll程序所引用,包括我自己的定製庫不同的庫,但同樣的問題仍然存在。 另外,我試圖用** System.Drawing中。在應用程序中顯示** _匿名類顏色_ **作爲類Color在System.Drawing.dll和Mono.An中聲明droid.dll的System.Drawing命名空間, 因此,這很可能使問題而引用其他DLL,當我嘗試使用沒有** ** Drawing.dll它正常工作:(一DLL – Surya2089 2012-08-13 10:27:50