我刚开始在MonoTouch解决方案中使用ServiceStack.Text.MonoTouch.dll.一切都在模拟器中编译和运行,但是一旦我尝试在手机上运行Debug构建,编译过程就会因以下错误而消失:
错误MT3001:无法AOT程序集’… / ServiceStack.Text.MonoTouch.dll’
错误MT3001:无法AOT程序集’… / ServiceStack.Text.MonoTouch.dll’
我读过这是因为ServiceStack.Text dll太大或者沿着那些行.所以我试着在发布模式下工作,因为LLVM处于打开状态,链接器转向“仅限链接SDK程序集”.
这是有问题的,因为我现在无法在设备上进行调试.在调试模式下,链接器被禁用,LLVM被关闭.有没有办法解决?
MT 6.0.8&
最新版本的ServiceStack dll是关闭Github的.
解决方法
In debug mode the linker is disabled,
不(至少不是默认情况下).
默认情况下,为所有设备构建(调试或发布)启用托管链接器(Link SDK).但是,默认(Link SDK)将无法从ServiceStack.Text.dll中删除未使用的代码,因为该程序集不是SDK程序集.
您需要将选项切换到链接所有程序集以确保它得到处理.
请注意,如果链接器不安全(例如使用反射),则可能需要在自己的代码上添加[Preserve]属性(或–linkskip = ASSEMBLY).有关示例,请参见此thread.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。