2016-08-21 145 views
0

如何强制链接时不去除?我在框架Xamarin上为Visual Studio 2015中的Android应用程序编写代码。面对这样一个问题:应用程序工作正常调试模式,但是当你把版本模式的应用程序功能丢失,即几个类被删除链接时,当他们打电话,应用程序粉碎。试过Xamarin在课前提供的书面文件是属性之一:如何强制链接时不删除?

[Android.Runtime.Preserve] 
[Android.Runtime.Preserve (AllMembers = true)] 
[Android.Runtime.Preserve (Conditional = true)] 

没有帮助。我也试过:

#pragma warning disable 0219, 0649 

它并没有帮助。我试图用linkskip,但它没有帮助。

唯一的解决办法是发现,它在连接属性表示链接器行为=没有链接(在Visual Studio无)(在调试模式)。但是这是一个糟糕的解决方案,因为适合调试,但不适合发布。应用程序的规模增加了2.5倍以上!

回答

1

我有同样的问题,解决了我的问题是将链接器行为更改为链接SDK程序集而且还将Xamarin工作室通道更改为Alpha。

+0

感谢,但切换到Alpha通道不想要的。我会等待一个稳定的版本,也许这个错误修复 – Igor

0

一种选择是在项目根目录中创建一个linker.xml文件,如here所述。该文件应该包含您希望确保在链接期间不被删除的所有类型。例如:

<?xml version="1.0" encoding="UTF-8"?> 
<linker> 
    <assembly fullname="Your.Assembly.Name"> 
     <type fullname="Fully.Qualified.Type.Name" /> 
    </assembly> 
</linker> 

一定要将文件的构建操作设置为LinkDescription。

此外,我有一个问题,其中包括一种类型,但其基类在链接过程中被删除。一定要包括所有类型的祖先。

希望帮助,

保罗的回答