locked
OOB时能否将XAP包中的DLL放在外面 RRS feed

  • 问题

  • OOB时将XAP包中的DLL放在外面

    我知道有一种方式就是编译时将DLL设置为不打包进去,然后需要用时动态获取,但是我想试试另外的方式

    XAP包中有一个配置文件

    <Deployment xmlns="<a href="http://schemas.microsoft.com/client/2007/deployment"">http://schemas.microsoft.com/client/2007/deployment"</a> 
    
    xmlns:x="<a href="http://schemas.microsoft.com/winfx/2006/xaml"">http://schemas.microsoft.com/winfx/2006/xaml"</a> EntryPointAssembly="ProjectA" 
    
    EntryPointType="ProjectA.App" RuntimeVersion="4.0.50401.0"> 
     <Deployment.OutOfBrowserSettings> 
      <OutOfBrowserSettings ShortName="ProjectA Application" EnableGPUAcceleration="False" 
    
    ShowInstallMenuItem="True"> 
       <OutOfBrowserSettings.Blurb>ProjectA Application on your desktop; at home, at work or on the 
    
    go.</OutOfBrowserSettings.Blurb> 
       <OutOfBrowserSettings.WindowSettings> 
        <WindowSettings Title="ProjectA Application" /> 
       </OutOfBrowserSettings.WindowSettings> 
       <OutOfBrowserSettings.Icons /> 
      </OutOfBrowserSettings> 
     </Deployment.OutOfBrowserSettings> 
     <Deployment.Parts> 
      <AssemblyPart x:Name="ProjectA" Source="ProjectA.dll" /> 
      <AssemblyPart x:Name="ProjectB" Source="ProjectB.dll" /> 
      <AssemblyPart x:Name="System.Windows.Controls" Source="System.Windows.Controls.dll" /> 
      <AssemblyPart x:Name="Telerik.Windows.Controls" Source="Telerik.Windows.Controls.dll" /> 
     </Deployment.Parts> 
    </Deployment>
    
    

    我想将Telerik.Windows.Controls.dll放到XAP外面,于是想改写配置节

    <AssemblyPart x:Name="Telerik.Windows.Controls" Source="~/ClientBin/Telerik.Windows.Controls.dll" />
    但是没有用,请问如果想将这个DLL放到xap外面,能够用这种方式解决吗?
    stay hungry stay foolish
    2010年8月19日 3:30

答案

全部回复

  • #

    我想将Telerik.Windows.Controls.dll放到XAP外面,于是想改写配置节

    <AssemblyPart x:Name="Telerik.Windows.Controls" Source="~/ClientBin/Telerik.Windows.Controls.dll" />

    但是没有用,请问如果想将这个DLL放到xap外面,能够用这种方式解决吗?

     

    不能,你可以把它放到另一个xap中,然后动态加载。


    Mog Liang
    • 已建议为答案 Mog Liang 2010年9月7日 2:30
    • 已标记为答案 Weng Yuli 2010年9月7日 2:35
    • 取消答案标记 Mog Liang 2010年9月7日 3:52
    • 取消建议作为答案 Mog Liang 2010年9月7日 3:54
    2010年9月6日 8:38
  • THX,那样的话项目中是不是有很多的XAP
    stay hungry stay foolish
    2010年9月7日 2:33
  • Leon,

    我发现Silverlight 可以通过WebClient直接下载并加载dll,不必放到xap中,参见这个视频

    http://development-guides.silverbaylabs.org/Video/Dynamically-Loading-.Dlls-in-Silverlight#videolocation_7

    不知道是否是你需要的效果。


    Mog Liang
    • 已标记为答案 Weng Yuli 2010年9月7日 14:08
    2010年9月7日 3:53
  • 是的 目前采用的方案就是将DLL独立出来 分别加载 webclient有个特性比较好 就是同一个DLL不会重复下载 呵呵


    stay hungry stay foolish
    2010年9月7日 14:10