返回首页

简介
有时,您的Silverlight应用程序变得过大,并创建一个更大的XAP文件。这将导致一个问题,而首次,因为它增加了下载的XAP的加载时间加载XAP文件。所以,你会做什么,在这种情况下呢?有一个答案:分割您的应用程序在多个项目中,将创建多个XAPs,然后使用按需下载功能。
绝对正确的,但你有时可能包括第三方的程序集引用。在这种情况下,存储在一个单独的XAP和下载要求他们写代码将非常忙碌。那么,什么是简单的过程吗?在这篇文章中,我们将学习相同。阅读了解更多的情况下,你需要更多的信息,并提供您的反馈。
大会缓存是不是在Silverlight 4中的新事物。这是由于Silverlight 3。今天,我有机会来看看,如果深入细节共享相同的思想。
那么,什么是应用程序库缓存?我们都知道按需下载的XAP。要做到这一点,我们需要写外部xap文件使用WebClient下载中的代码。应用程序库缓存会为你做类似的事情很容易。假设,如果你有一个更大的应用和巨大的第三方库,这个简单的步骤将帮助您与他们单独的zip文件,可以根据需要下载,而无需编写任何额外的代码。
很多人不知道它,因此,让我们开始描述,这里。第1步 - 挖内的XAP
首先,我们将创建一个小的Silverlight应用程序项目。要做到这一点,请打开您的Visual Studio和创建。{S0}
一旦你完成创建项目,在解决方案资源管理器中你会看到它有一些默认的一些大会文件。一旦你建立的项目,它会为你创建一个。xap文件。下面是相同的截图:
你可以看到,它创造的XAP文件在客户端的bin目录。它创建了一个单一的XAP,不论引用该项目的大会文件的数量,增加不必要的XAP文件的大小,是否需要或不。
,看到里面的XAP内容,去ClientBin文件夹。在这里,您会发现您的Silverlight应用程序的XAP输出。{S2}
大家都知道,所有的XAP文件都不过是一个ZIP文件,因此你可以很容易地转换它重新命名其扩展到Zip文件。{S3}
打开ZIP文件。内,你会发现"AppManifest.xamlquot;(存储引用的程序集信息),您的项目和其他所有引用的程序集DLL输出。如果您的解决方案中添加更多的第三方组件的参考,这个列表将会增加。{S4}的
要知道这些细节,在文本编辑器打开AppManifest.xaml文件。有到下面的截图:{五}
你会发现,它已作为大会的一部分,切入点和需要的运行时版本所有被引用的DLL的信息。大会部分告诉直接加载的XAP所指的大会。第2步 - 多个程序集的工作
只要想象我们在第一步证明。现在,我们将在我们的项目中添加一些额外的DLL参考。要做到这一点,右击您的项目,点击quot;"添加引用"。现在,从"添加引用"对话框中,选择一些第三方的DLL,它们包括在您的项目。
示范,我们将在我们的解决方案中添加一些主题化的DLL。要做到这quot,搜索; themequot;,你会看到在"添加引用"对话框中的主题化的DLL列表。他们选择了一些,并添加到项目中。{中六}
一旦你添加它们,你会发现,现在选定的组件项目的一部分(见下图):{七}
现在,建立您的解决方案,并打开新的XAP文件(其重命名为一个ZIP)。你会看到所有新引用的DLL,现在您的XAP的一部分。见下面的截图,它会给你更好的信息:
让我们打开quot; AppManifest.xamlquot;和它所包含的内容现在。哇,它包含AssemblyPart所有这些额外的DLL的条目,并告诉加载它们从XAP本身。
这实际上增加的XAP大小,使您的应用程序有点笨重。从而提高应用程序的初始加载时间。步骤3 - 使用应用程序库缓存
为了克服这个问题,让我们改变我们的项目使用应用程序库缓存功能的设置。转到您的项目属性面板。在Silverlight"选项卡上,你会发现一个复选框称为quot;减少通过使用应用程序库cachingquot的XAP大小。检查如下所示:
现在再次构建您的项目,你会看到如下所示,它会创建之多。ZIP文件作为外部程序集的计数。您还会注意到,它创建了一个称为单一的DLL组件一个zip。
让我们一起去了望进深为应用程序清单。转到输出目录quot; ClientBinquot;。你会看到如下所示的ZIP文件的一个单一的XAP文件:{S12}
每个ZIP包含一个DLL文件。重命名和打开XAP文件。打开的XAP AppManifest.xaml。{S13}
在这里,你会发现一个单一的AssemblyPart指向原始项目输出和thenbsp休息;现在搬到ExternalParts DLL引用。他们现在指向的Zip文件,而不是实际的DLL。
现在,当您运行的应用程序,它只会下载XAP文件,其中包含的主要资源。将其余的DLL邮编按需下载,只要您的应用程序所需的。
希望这些信息将帮助你了解Silverlight的库缓存功能,让您有机会在您的应用程序中使用它。让我知道的情况下,你需要进一步的信息。历史三月十四日,2011年:初始版本

回答

评论会员:anildcsc 时间:2012/01/27
喜Kunal,
4.I在Silverlight应用程序库缓存文章试图执行,我application.However在我面临的一个问题,而应用程序得到loaded.The错误说:"没有下载的平台延伸:System.ComponentModel。 DataAnotations.Zip",可否请你建议,如果来解决这个事情需要做。

另外,我已经确定了一些第三方的DLL没有得到缓存,它们仍然存在的XAP。是否有任何具体的程序,在这里我们可以添加缓存的几个DLL和排除数


阿尼尔库马尔Devarapalem
评论会员:。jugalpanchal 时间:2012/01/27
您好阿尼尔,

请按照这里记录这些步骤:],让我知道,如果你需要进一步的帮助。
各种文章,新闻和有关Silverlight,Windows Phone 7和Windows 8的地铁的UI教程敬请关注我的博客。关于 - Kunal乔杜里
微软最有价值球员(Silverlight的)| CodeProject上最有价值球员导师| Telerik MVP

我:{A}
评论会员:Anil_Saran 时间:2012/01/27
尼斯
评论会员:。RaviRanjankr 时间:2012/01/27
。馗
的Silverlight教程5:
评论会员:萨沙理发 时间:2012/01/27
大凉{S14}
评论会员:萨沙理发 时间:2012/01/27
谢谢您主席先生... ... {S14} 关于 - Kunal乔杜里|微软MVP(Silverlight中)| CodeProject上MVP |软件工程师

我的最新博客饲料[2011年04月]:

欣赏你的投票和反馈
评论会员:Nishant西瓦库玛 时间:2012/01/27
好工作的人。跟上
评论会员:Nishant西瓦库玛 时间:2012/01/27
,谢谢您的支持发送$ W @ R 关于 - Kunal乔杜里|微软MVP(Silverlight中)| CodeProject上MVP |软件工程师

我的最新文章[2011年3月14日]:
评论会员:Nishant西瓦库玛 时间:2012/01/27
哇..好文章!把它分享感谢
评论会员:Nishant西瓦库玛 时间:2012/01/27
感谢您的支持。拉维关于 - Kunal乔杜里|微软MVP(Silverlight中)| CodeProject上MVP |软件工程师

我的最新文章[2011年3月14日]: