Xamarin应用部署-应用包(apk)中是否包括所有依赖项?

时间:2018-07-02 09:05:44

标签: c# visual-studio xamarin dependency-injection xamarin.android

我是Xamarin的新手,不知道解决方案部署的实际工作原理。 假设我的项目中有依赖项,如下图所示: 这是否意味着部署该应用程序将导致包括所有项目?在这种情况下,Mobile应用程序不使用CoreServices,后者调用{{1} }和RestService,但它也调用Data使用的相同的CoreServices

2 个答案:

答案 0 :(得分:3)

您的应用将包含任何引用的程序集或项目所需的所有内容。例如:如果BP.Mobile引用CoreServices引用RestServices,则所有这些项目构建结果都将包含在引用BP.Mobile的应用程序中。加上所有带有NuGet软件包的程序集。

如果您使用Android Studio分析apk,则可以轻松了解应用程序内部的内容。或将您的APK重命名为zip并解压缩。

答案 1 :(得分:-1)

  

在Android上链接

     

Xamarin.Android应用程序使用链接器来减小   应用。链接器对您的应用程序进行静态分析   确定实际使用的程序集,哪些类型是   实际使用的,以及实际使用的成员。然后链接器   表现得像垃圾收集器,不断寻找   直到整个被引用的程序集,类型和成员   找到引用的程序集,类型和成员的关闭。然后   此关闭之外的所有内容都将被丢弃。

     

链接器行为

     

控制链接器的主要机制是链接器   项目中的行为(在Visual Studio中链接)下拉菜单   选项对话框。共有三个选项:

     
      
  1. 不要链接(在Visual Studio中为无)
  2.   
  3. 链接SDK程序集(仅Sdk程序集)
  4.   
  5. 链接所有程序集(SDK和用户程序集)
  6.   

ref:https://docs.microsoft.com/en-us/xamarin/android/deploy-test/linker

enter image description here

enter image description here

注意高级按钮(右下)会弹出一个对话框,用于设置目标体系结构(ARM,x86,x64等)以及一些其他通常不应该混淆的选项。