• 快速浏览silverlight3 Beta: 打包下载文件(共享程序集)


         翻译:A quick look at Silverlight 3: Packaging Assemblies for Download

         在Silverlight2中,如果使用附属(additional)程序集(比如System.Xml.Linq.dll)
    时,需要在VS中添加对它的引用。最终在生成的XAP文件中包括下面内容:
         

         1.当前应用的assembly 文件 
         2.当前应用的manifest 文件 
         3.一个System.Xml.Linq.dll拷贝

       

         这样,每当用户下载该应用时,他们也会下载System.Xml.Linq.dll文件。如果想下载其它
    silverlight应用(也使用了System.Xml.Linq.dll)的话,这些应用是不能从中获益(共享)的。
    事实上,我的应用程序中就已经造成了这个问题。

         注:System.Xml.Linq.dll只是一个例子, 还有不少的assemblies被大量用于silver
    light应用中。


         在silverlight3中,可以通过Microsoft 来下载一些assemblies文件,好处就是:   

        1.减少你的XAP文件尺寸
        2.对于其它XAP中已(有)下载的assembly文件,在你的应用中可不必再次下载。

        如你的安装路径与我相同:     

    c:\program files\microsoft sdks\silverlight\v3.0\libraries\client

         并搜索*.xml文件的话,就会发现一些叫“.extmap.xml”的文件。举个例子:

         "System.Xml.Linq.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>System.Xml.Linq</name> 
        
    <version>2.0.5.0</version> 
        
    <publickeytoken>31bf3856ad364e35</publickeytoken> 
        
    <relpath>System.Xml.Linq.dll</relpath> 
        
    <extension downloadUri="http://go.microsoft.com/fwlink/?LinkId=142576" /> 
      
    </assembly> 
    </manifest>

         这个文件所做的就是提供一个“Microsoft链接”,即从哪可下载到“System.Xml.Linq.dll”,
    而你可以不用在XAP中提供该(xml)文件。


          如果你安装Silverlight3 Beta tools之后,就会在VS中的项目属性页中看到一个新添的选项,
    如下:

     


         当选中该项之后,你就会看到生成的程序manifest中有一些变化。比如,引用System.Xml.Linq.dll:

    <Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" EntryPointAssembly="SilverlightApplication18" EntryPointType="SilverlightApplication18.App" RuntimeVersion="3.0.40307.0"> 
      
    <Deployment.Parts> 
        
    <AssemblyPart x:Name="SilverlightApplication18" Source="SilverlightApplication18.dll" /> 
        
    <AssemblyPart x:Name="System.Xml.Linq" Source="System.Xml.Linq.dll" /> 
      
    </Deployment.Parts> 
    </Deployment>

        而选中该选项后:

    <Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" EntryPointAssembly="SilverlightApplication18" EntryPointType="SilverlightApplication18.App" RuntimeVersion="3.0.40307.0"> 
      
    <Deployment.Parts> 
        
    <AssemblyPart x:Name="SilverlightApplication18" Source="SilverlightApplication18.dll" /> 
      
    </Deployment.Parts> 
      
    <Deployment.ExternalParts> 
        
    <ExtensionPart Source="http://go.microsoft.com/fwlink/?LinkId=142576" /> 
      
    </Deployment.ExternalParts> 
    </Deployment>

          当在浏览器中运行该应用时,会看到(使用fiddler工具)下面的流量(请求)就会从我的程序中发
    送到Microsoft.com:

        
     
       

          以便获取 System.Xml.Linq.dll的压缩文件。

          注:就我目前知道的,这种情况只对Microsoft的assemblies有效。

     

          原文链接:http://www.cnblogs.com/daizhj/archive/2009/03/26/1422408.html

          作者: daizhj, 代震军

          Tags: silverlight,package,打包,下载
        
          网址: http://daizhj.cnblogs.com/  

  • 相关阅读:
    K折交叉验证
    浅谈python的第三方库——pandas(三)
    关于机器学习二分类问题的几个评估指标辨析
    浅谈python的第三方库——pandas(二)
    浅谈python的第三方库——pandas(一)
    【内核篇】Windows内核重要变量
    【逆向篇】分析一段简单的ShellCode——从TEB到函数地址获取
    【系统篇】从int 3探索Windows应用程序调试原理
    【编程篇】使用操作系统异常巧妙获取交叉链表的交点
    【灌水篇】为什么我们要拼搏北上广
  • 原文地址:https://www.cnblogs.com/daizhj/p/1422408.html
Copyright © 2020-2023  润新知