不错的开源压缩组件(可惜没能用上)

简介:


今天继续在研究Silverlight的发布优化方法,由于项目需要开启OOB,没有办法再选中 

这两个选项只能选择其中一个,很遗憾不能利用自身的功能合并项目了,这里说明一下,第一个选项的好处

如果你的解决方案中有两个Silverlight项目,那么如果选择了第一项,则两个项目中共同的DLL会被压缩放在ClientBin目录下,这样做的好处是避免了两个SL项目中引用重复的DLL,但是选择OOB之后,我们便不能选择这个项了,于是我想到在OOB的基础上,将打包好的XAP改成压缩文件,再解压,将两个项目中的公共DLL抽取出来放到ClientBin下,当然这样做还涉及到Xap包中的一个文件 

代码
< Deployment  xmlns ="<a href=" http://schemas.microsoft.com/client/2007/deployment"" > http://schemas.microsoft.com/client/2007/deployment" </ a >  

xmlns:x="
< 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 >

 我想将最后两个DLL抽取出来或者改变一下配置路径,但两种方法都没有用,有了解的朋友还请指点。

在解决问题的过程中我下载了一个挺不错的压缩组件

SharpZipLib 有兴趣的朋友可以试试

http://www.icsharpcode.net/OpenSource/SharpZipLib/

简单写了一个类实现压缩和解压缩功能。

代码
using  System; 
using  System.Collections.Generic; 
using  System.Linq; 
using  System.Web;

using  System.IO; 
using  ICSharpCode.SharpZipLib.Zip;

namespace  SLProjectsDownLoad.Web 

    
public   class  Zip 
    { 
        
public   static   void  ZipFiles( string  ZipFileName,  string  FromDirectory) 
        { 
            FastZip fz 
=   new  FastZip(); 
            fz.CreateEmptyDirectories 
=   true
            fz.CreateZip(ZipFileName, FromDirectory, 
true "" ); 
            fz 
=   null
        }

        
public   static   void  UnZipFiles( string  ZipFileName,  string  ToDirectory) 
        { 
            
if  ( ! Directory.Exists(ToDirectory)) 
                Directory.CreateDirectory(ToDirectory);

            ZipInputStream s 
=   new  ZipInputStream(File.OpenRead(ZipFileName));

            ZipEntry theEntry; 
            
while  ((theEntry  =  s.GetNextEntry())  !=   null
            { 
                
string  directoryName  =  Path.GetDirectoryName(theEntry.Name); 
                
string  fileName  =  Path.GetFileName(theEntry.Name);

                
if  (directoryName  !=  String.Empty) 
                    Directory.CreateDirectory(ToDirectory 
+  directoryName);

                
if  (fileName  !=  String.Empty) 
                { 
                    FileStream streamWriter 
=  File.Create(ToDirectory  +  theEntry.Name);

                    
int  size  =   2048
                    
byte [] data  =   new   byte [ 2048 ]; 
                    
while  ( true
                    { 
                        size 
=  s.Read(data,  0 , data.Length); 
                        
if  (size  >   0
                        { 
                            streamWriter.Write(data, 
0 , size); 
                        } 
                        
else  
                        { 
                            
break
                        } 
                    } 
                    streamWriter.Close(); 
                } 
            } 
            s.Close(); 
        } 
    } 
}



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


相关文章
|
4月前
|
数据采集 前端开发 JavaScript
《花100块做个摸鱼小网站! 》第四篇—前端应用搭建和完成第一个热搜组件
本文档详细介绍了从零开始搭建一个包含前后端交互的热搜展示项目的全过程。通过本教程,读者不仅能学习到完整的项目开发流程,还能掌握爬虫技术和前后端交互的具体实践。适合有一定编程基础并对项目实战感兴趣的开发者参考。
93 1
|
4月前
|
开发者 缓存 数据库
【性能奇迹】Wicket应用的极速重生:揭秘那些让开发者心跳加速的调优秘技!
【8月更文挑战第31天】在软件开发中,性能优化是确保应用快速响应和高效运行的关键。本书《性能调优:Apache Wicket应用的速度提升秘籍》详细介绍了如何优化Apache Wicket应用,包括代码优化、资源管理、数据库查询优化、缓存策略及服务器配置等方面。通过减少不必要的组件渲染、优化SQL查询、使用缓存和调整服务器设置等方法,本书帮助开发者显著提升Wicket应用的性能,确保其在高并发和数据密集型场景下的稳定性和响应速度。
50 0
|
7月前
|
缓存 算法 JavaScript
性能调优太差,阿里P8都看不过甩给我一份Java性能调优PDF,真香
为什么程序总是那么慢?它现在到底在干什么?时间都花到哪里去了?也许,你经常会抱怨这些问题。如果是这样,那说明你的程序出了性能问题。和功能性问题相比,性能问题在有些情况下,可能并不算什么太大的问题,将就将就,也就过去了。但是,严重的性能问题会导致程序瘫痪、假死,直至崩溃。
|
存储 缓存 搜索推荐
想要快速地拥有Sitecore DXP平台!这九个开发大坑一定要避开!
随着互联网技术的深入的发展,人们对于个性化的渴望已经达到了新的阈值,这也让以数字洞察力、个性化体验为名的Sitecore DXP平台成为了品牌们竞相追捧的新宠。而在这样的需要背景下,一众新手企业纷纷投身市场,想要分一杯羹。但是经验不足的新人入场,难免会带来不少麻烦,甚至引发了人们对于Sitecore性能的质疑。
值得一看!阿里又杀疯了开源内部“M9”级别全彩版分布式实战笔记
系统架构大致经历了单体应用架构→垂直应用架构→分布式架构→SOA架构→微服务架构的演变
如何设计一个超牛逼的本地缓存,太香了
最近在看Mybatis的源码,刚好看到缓存这一块,Mybatis提供了一级缓存和二级缓存;一级缓存相对来说比较简单,功能比较齐全的是二级缓存,基本上满足了一个缓存该有的功能;当然如果拿来和专门的缓存框架如ehcache来对比可能稍有差距;本文我们将来整理一下实现一个本地缓存都应该需要考虑哪些东西。
|
XML 存储 编解码
包体积优化 · 方法论 · 揭开包体积优化神秘面纱
包体积优化 · 方法论 · 揭开包体积优化神秘面纱
258 0
包体积优化 · 方法论 · 揭开包体积优化神秘面纱
|
缓存 监控 Kubernetes
包体积优化 · 实战论 · 怎么做包体积优化? 做好能晋升吗? 能涨多少钱?
包体积优化 · 实战论 · 怎么做包体积优化? 做好能晋升吗? 能涨多少钱?
448 0
包体积优化 · 实战论 · 怎么做包体积优化? 做好能晋升吗? 能涨多少钱?
|
算法 Python
以为是高性能神仙算法,一看源代码才发现...
以为是高性能神仙算法,一看源代码才发现...
118 0
|
传感器
时隔这么长时间,我把常用的功能整理好了,再来感受VueUse工具库的优雅吧~
时隔这么长时间,我把常用的功能整理好了,再来感受VueUse工具库的优雅吧~
时隔这么长时间,我把常用的功能整理好了,再来感受VueUse工具库的优雅吧~