如何减少silverlight XAP包的尺寸

简介:

最后决定把这个其实很简单的东西总结一下,避免别的新学者浪费时间。


开发场景: 

 

Silverlight Application: 与Web交互, 程序集名:SilverlightApplication10.dll 
Silverlight Class Library: 被SilverlightApplication10引用,程序集名:SilverlightClassLibrary1.dll 
目标: 
编译后的ClientBin中,SilverlightApplication10.xap包中不包含SilverlightClassLibrary1.dll, SilverlightClassLibrary1.dll 以SilverlightClassLibrary1.zip新式单独存在。 
OK, 现在说说这核心三部曲: 
1. SilverlighApplication10工程属性里”Silverlight”标签下勾上 “Reduce XAP size by using application library caching” 

 

 

2. 在保存SilverlightClassLibrary1.dll的地方增加一个extmap文件” SilverlightClassLibrary1.extmap.xml” 

 

 

SilverlightClassLibrary1.extmap.xml 的内容说明

 


 
 
  1. <?xml version="1.0"?> 
  2. <manifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  3.           xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
  4.   <assembly> 
  5.     <name>SilverlightClassLibrary1</name> 
  6.     <version>1.0.0.0</version> 
  7.     <publickeytoken>ee6c3f173c1a51b5</publickeytoken> 
  8.     <relpath>SilverlightClassLibrary1.dll</relpath> 
  9.     <extension downloadUri="SilverlightClassLibrary1.zip" /> 
  10.   </assembly> 
  11. </manifest> 

 

name: SilverlightClassLibrary1 的程序集名字 
version: assembly version. 
publickeytoken: 打上签名后的public key 
没什么太多解释的,微软的文档“如何使用应用程序库缓存” 里说的很清楚了。对于version和publikeytoken如果你拿不准的话,可以用reflector看,简单直接: 

 

 

另外,extension downloadUri的内容注意别写错了,是 .zip结尾!我有个配置给copy成.dll了,老不成功,以为还需要设置别的配置,在快把我搞死的时候,才发现这儿写错了,唉...... 
3. SilverlightApplication10 不要引用SilverlightClassLibrary1的工程,要直接引用编译好的SilverlightClassLibrary1.dll 

 

 

OK,最后结果如图: 

 

清爽的xap包!把它改名成SilverlightApplication10.zip。



本文转自 powertoolsteam 51CTO博客,原文链接:http://blog.51cto.com/powertoolsteam/531409,如需转载请自行联系原作者

相关文章

热门文章

最新文章

下一篇
无影云桌面