我是Xamarin的新手,不知道解决方案部署的实际工作原理。
假设我的项目中有依赖项,如下图所示:
这是否意味着部署该应用程序将导致包括所有项目?在这种情况下,Mobile
应用程序不使用CoreServices
,后者调用{{1} }和RestService
,但它也调用Data
使用的相同的CoreServices
。
答案 0 :(得分:3)
您的应用将包含任何引用的程序集或项目所需的所有内容。例如:如果BP.Mobile引用CoreServices引用RestServices,则所有这些项目构建结果都将包含在引用BP.Mobile的应用程序中。加上所有带有NuGet软件包的程序集。
如果您使用Android Studio分析apk,则可以轻松了解应用程序内部的内容。或将您的APK重命名为zip并解压缩。
答案 1 :(得分:-1)
在Android上链接
Xamarin.Android应用程序使用链接器来减小 应用。链接器对您的应用程序进行静态分析 确定实际使用的程序集,哪些类型是 实际使用的,以及实际使用的成员。然后链接器 表现得像垃圾收集器,不断寻找 直到整个被引用的程序集,类型和成员 找到引用的程序集,类型和成员的关闭。然后 此关闭之外的所有内容都将被丢弃。
链接器行为
控制链接器的主要机制是链接器 项目中的行为(在Visual Studio中链接)下拉菜单 选项对话框。共有三个选项:
- 不要链接(在Visual Studio中为无)
- 链接SDK程序集(仅Sdk程序集)
- 链接所有程序集(SDK和用户程序集)
ref:https://docs.microsoft.com/en-us/xamarin/android/deploy-test/linker
注意:高级按钮(右下)会弹出一个对话框,用于设置目标体系结构(ARM,x86,x64等)以及一些其他通常不应该混淆的选项。