在引用iTextSharp dll时出现以下错误
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与之相矛盾
iTextSharp引用的System.Drawing.dll
在这种情况下,它看起来像针对桌面框架程序集编译的iTextSharp(即2.0.0.0版本是提示,Android版本的Mono将是2.1.x).
通常,此类问题的解决方案是针对Mono for Android提供的程序集重新编译项目(在本例中为iTextSharp).这样所有引用都将针对M4A程序集,并且链接器将能够处理它们(因为它们不会丢失任何内容,否则它将在编译时失败).
请注意,如果它依赖于System.Drawing.dll中的太多内容,则可能无法从源代码重新编译iTextSharp.
Also I tried to add System.Drawing.dll,but it still did not resolve the error.
使用桌面装配不太可行(因为它们依赖于不同的装配,具有不同的类型……).
此外,Windows(或Mono)附带的System.Drawing.dll无法与Mono for Android一起使用,因为它们依赖于不属于Android的GDI(或libgdiplus for Mono).
Guess the System.Drawing within the Mono.Android.dll is conflicting with the System.Drawing.dll which is being referenced by the iTextSharp
没有程序集冲突,因为Android的Mono没有附带System.Drawing.dll程序集.但是包含一些类型(例如Rectangle [F],Point [F]和Size [F])(在另一个程序集中)使用System.Drawing.*命名空间,因为它们对.NET开发人员有用(并且是众所周知的).