【问题标题】:Xamarin Linker removing reference to third party dllXamarin 链接器删除对第三方 dll 的引用
【发布时间】:2015-03-18 14:18:24
【问题描述】:

在 Xamarin 中以发布模式运行我的应用程序时,我收到以下错误,并显示“仅链接 SDK 程序集”:

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets: 错误:执行任务 LinkAssemblies 时出错:错误 XA2006:参考 元数据项“System.IO.Ports.SerialPort”(在“EftPay”中定义, 版本=1.2.0.0,文化=中性,PublicKeyToken=e6147cbb02cecb0d') 来自'EftPay,版本=1.2.0.0,文化=中性, PublicKeyToken=e6147cbb02cecb0d' 无法解析。 (mPOS)

我正在使用在类中使用 SerialPort 引用的第三方库(如错误中所示),但是,我不使用该特定类。有没有办法告诉链接器不要删除这个引用?

感谢您的帮助。

【问题讨论】:

标签: c# android xamarin xamarin.android xamarin-linker


【解决方案1】:

您是否尝试创建一个“使用”SerialPort 类的静态类?与此类似的东西: https://github.com/MvvmCross/MvvmCross/blob/v3/nuspec/DroidContent/LinkerPleaseInclude.cs.pp

或者您可以尝试链接跳过该程序集

<PropertyGroup>
     <AndroidLinkSkip>Assembly1;Assembly2</AndroidLinkSkip>
</PropertyGroup>

【讨论】:

  • 是的,我已经尝试过了,但是 System.IO.Port 类在 monoandroid 中甚至不可用,所以我什至无法声明它。我也尝试了 linkskip 属性并没有成功保留属性。
  • O_o.情况似乎是这样 - System.IO.Port 不是 Monodroid 的一部分。查看这些链接:stackoverflow.com/questions/5653890/… bugzilla.novell.com/show_bug.cgi?id=687407 我的最后一个想法是您应该尝试链接跳过第三方库。如果这没有帮助,那么您应该坚持使用“跳过链接”而不是“链接 SDK 程序集”设置。
  • 是的,谢谢我看过大部分这些帖子。我想我没有链接。它只会创建一个不理想的庞大 .apk。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-29
  • 2013-11-25
  • 2014-07-10
  • 2017-12-30
相关资源
最近更新 更多