压缩silverlight XAP包的尺寸方法

开发场景:

silverlight'>Silverlight Application: 与Web交互, 程序集名:SilverlightApplication10.dll'>dll
Silverlight Class Library: 被SilverlightApplication10引用,程序集名:Silverlightc'>htClassLibrary1.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的地方增加一个Ext'>extmap文件” SilverlightClassLibrary1.extmap.xml'>xml”

SilverlightClassLibrary1.extmap.xml 的内容说明

<?xml version="1.0"?>
<manifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <assembly>
    <name>SilverlightClassLibrary1</name>
    <version>1.0.0.0</version>
    <publickeytoken>ee6c3f173c1a51b5</publickeytoken>
    <relpath>SilverlightClassLibrary1.dll</relpath>
    <extension downloadUri="SilverlightClassLibrary1.zip" />
  </assembly>
</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,打开看看:

ysq001 -
共有0个回答