Silverlight 3 Reduce XAP size by using application library caching 應用, 分包下載

來源:互聯網
上載者:User

最早使用 IsolatedStorageFile 類緩衝 Silverlight 程式. 以便下次開啟速度變快.  某天偶爾發現 VS 的 SL 項目屬性中. 有此選項.

, 於是上網找找資料. 做了個例子試試. 結果很明顯. 400多k 的 xap 檔案 被分離成多個. 最後的 xap 檔案只有14k 大小.

 

特將此 demo 的製作過程記錄下來, 以備查閱.

 

1. 項目結構如下:

 

2. 首先編譯. 查看產生的 Xap 檔案大小.   452KB.

3. 開啟 PEMS.Sl.UI  SL 項目的屬性頁面. 將 選中.

4. 編譯解決方案. 查看新的結果.

產生後. Navigation. Controls. Linq 三個動態連結程式庫被單獨打包為 zip格式. 存放與 ClientBin 下. 這樣. 用戶端在使用到的時候. SL 會為你自動下載.

由於我的 PEMS.Sl.UI 項目使用到了 PEMS.Sl.Controls 與 PEMS.Common.Model 項目. 我也需要讓這兩個項目變得與 Navigation. Controls. Linq 它們相同. 下面詳細說明.

改造 PEMS.Sl.Controls 與 PEMS.Common.Model 項目.

1. 將 PEMS.Sl.Controls 與 PEMS.Common.Model 它們產生為強型別動態連結程式庫.

1. 使用 VS 工具 sn 產生key.

sn –k key.snk

sn –p key.snk key.public.snk

sn –t key.public.snk  查看到的 public token 記下. 稍後有重要作用

2. 在 PEMS.Sl.Controls 項目屬性中產生一個key.

3. 在 AssemblyInfo.cs 檔案中添加 [assembly: AssemblyKeyFile("key.public.snl")]
 

 

4. 在項目中建立一個 AssemblyName.extmap.xml 檔案. 我這裡叫做 PEMS.Sl.Controls.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>PEMS.Sl.Controls</name>
6     <version>1.0.0.0</version>
7     <publickeytoken>55a4a48c2765ae41</publickeytoken>
8     <relpath>PEMS.Sl.Controls.dll</relpath>
9     <extension downloadUri="PEMS.Sl.Controls.zip" />
10   </assembly>
11 
12 </manifest>

在你的項目中替換相關的值就可以了. 更改此 XML 檔案的屬性. 更改為總是拷貝至輸出目錄

PEMS.Common.Model 同 PEMS.Sl.Controls 項目相同設定.

現在重新編譯試試看.

PMES.Common.Model 同 PEMS.Sl.Controls 都被打成 zip 包了.

現在看看 PEMS.Sl.UI.xap 多大.

由最初的 452KB. 變為 210 KB. 其他均為動態下載

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.