使用
Xamarin Studio - 4.0.4(build 2) 单声道 - 2.10.11 Xamarin.iOS - 6.3.5.43 Mac OS X - 10.8.2
构建包装器绑定类时,我收到一条警告,说“System.Runtime.CompilerServices.ExtensionAttribute”存在于多个程序集中。它只是一个警告,但构建.dll文件。
目标GenerateBindings:
工具/开发人员/ MonoTouch / usr / bin / btouch执行以参数开头:/ unsafe / d:DEBUG ApiDefinition.cs /s:StructsAndEnums.cs / tmpdir:obj / Debug / ios / / sourceonly:obj / Debug / ios // sources.list
警告CS1685:
预定义类型System.Runtime.CompilerServices.ExtensionAttribute' is defined in multiple assemblies. Using definition from
mscorlib'
/Developer/MonoTouch/usr/lib/mono/2.1/mscorlib.dll(与先前警告相关的符号位置) /Library/Frameworks/Mono.framework/Versions/2.10.11/lib/mono/2.0/System.Core.dll(与先前警告相关的符号位置)
但是当在另一个项目中使用创建的绑定类时,它会给出错误说明 编译为本机代码 - '错误MT5202:原生链接失败。请查看构建日志。'
在构建日志中 ld:找不到文件:/var/folders/w4/xsz8x8vx0_51hjxj474r1_fxhlq7x3/T/tmp9aef74.tmp/libPrint.a collect2:ld返回1退出状态
注意:libPrint.a是我的静态库
-Update -
将libPrint.a文件绑定到包装类时,应将.a文件添加到项目中,而不是添加到“Resources”文件夹中。这解决了我们面临的问题。
答案 0 :(得分:1)
libPrint.a是否支持您构建iOS项目的架构?
IOW,如果你正在为Simulator编译,你的libPrint.a需要支持i386。
如果您正在为设备进行编译,则需要支持您要定位的任何ARM arch。
答案 1 :(得分:1)
警告是因为多个程序集中的System.Runtime.CompilerServices.ExtensionAttribute'存在歧义。
保持警告,真正的问题是添加libPrint.a文件。 这是一个小小的愚蠢错误。 xamarin的docs清楚地解释了它。 它应该添加到项目中,而不是“Resources”文件夹中。 这解决了我在项目中使用.dll文件时遇到的错误。