Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin 减少AppStore应用程序大小:是否删除System.Xml?_Xamarin_Xamarin.ios - Fatal编程技术网

Xamarin 减少AppStore应用程序大小:是否删除System.Xml?

Xamarin 减少AppStore应用程序大小:是否删除System.Xml?,xamarin,xamarin.ios,Xamarin,Xamarin.ios,我正在寻找减少我的应用商店应用程序大小的方法。我使用Xamarin表单和PCL。我在我的应用程序的AppStore构建输出(在./obj/iPhone/AppStore/mtouch cache中)中看到的一件事是System.Xml.dll.armv7.o和System.Xml.dll.arm64.o总计约12mb。在mscorlib之后,这是构建输出中最大的组件。请参见屏幕截图: 我的应用程序不使用Xml,所以如果可能的话,我想删除这个依赖项引用。我试图从我的项目中删除对System.Xm

我正在寻找减少我的应用商店应用程序大小的方法。我使用Xamarin表单和PCL。我在我的应用程序的
AppStore
构建输出(在
./obj/iPhone/AppStore/mtouch cache
中)中看到的一件事是
System.Xml.dll.armv7.o
System.Xml.dll.arm64.o
总计约12mb。在
mscorlib
之后,这是构建输出中最大的组件。请参见屏幕截图:

我的应用程序不使用Xml,所以如果可能的话,我想删除这个依赖项引用。我试图从我的项目中删除对
System.Xml
的所有引用,但这似乎没有改变任何事情。我可以用什么方法把它去掉吗?为什么
System.Xml
在我的构建输出中

我的项目源代码可以在GitHub上找到:

为什么System.Xml在我的构建输出中

托管链接器(除非已禁用)将从应用程序中删除任何非必需的程序集。如果仍然看到
System.Xml.dll
,则表示:

  • 链接器设置为不链接,设备的默认设置为链接SDK

  • 其他一些程序集(如第三方)正在使用
    System.Xml
    ,无法从应用程序中删除

我可以用什么方法把它去掉吗

对。您可以使用部件浏览器查看来自第三方部件的引用。一旦确定,您可以:

  • 从项目中删除依赖项,并将其替换为不依赖于
    System.Xml
    的内容。这可能很容易,也可能很难;或

  • 将链接器设置为Link all,以查看它是否可以消除来自第三方的XML引用。请注意,您可能需要在您的(和其他第三方代码)上添加
    [Preserve]
    ,以涵盖反射(链接器无法使用静态分析检测到反射)等情况


除了Xamarin网站上的文档外,您还可以观看我在。它涵盖了大多数设置的优点和缺点。

我确实打开了完整链接器。据我所知,我仅有的利用
System.Xml
的包是Json.NET和Xamarin.Forms。我没有使用Json.NET调用System.Xml的特性。由于Xamarin.Forms,是否需要
System.Xml
?此外,我发现从程序集浏览器中获取有用的内容时遇到了问题。我没有看到我的任何第三方库列在其中。有没有关于如何使用此功能的信息?一个快速的谷歌搜索结果并不多。