大概看了一下部署与安装,也试了一下,Windows要安装 NET Framework 3.5才能运行安装的软件。问题是这个东西在网上自动下载要197M的,上帝!!!这也太大了。
能不能精简一下这个东西,比如只发布用到的DLL,如果能精简,最小能减到多少?我希望它能在20M以内,我在软件里也只是用到了数据库等简单的访问。

解决方案 »

  1.   

    dotnetfx3.exe
    3.0.4506.30
    50.2M
      

  2.   

    我认为NET Framework 不是你程序的一部分,不应该由写程序的来部署,这个框架是系统的一部分,应该由客户自己去部署,他想用你的程序就得自己安装,当然我们可以给他提供方便,但按不按装是他自己决定的。事实上,你给他精简了,安装到自己目录可以运行了,又有个程序要安装怎么办?又精简一下安装到自己的目录,那同样的文件不是越来越多了,有必要么?
      

  3.   

    怎么会没有必要呢?1、如果发布在网上,别人下载了,安装的时候要下载200M的东西,下载久,安装久,根本就没耐心,又不是什么出名的软件,无形中就少了机会。2、客户有几个认识NET Framework,人家用不了,自然就找到你,什么问题都得解决,如果是绿色版的,只要把DLL放在目录下,重装系统之后,马上可以用了,客户自己就可以搞定,这也大大增加了维护成本。3、NET Framework集成到Windows至少要WIN7.0以后,少说也得三五年,三五年对于软件来说,已经是相当成的周期了。4、现在精简版的XP也就是200M多,装一个NET Framework,比装一个XP还久,我真无语了。。
      

  4.   


    首先我我先问你你确实用到.net3.0的哪些新功能了,如果真的用了linq这些当然没办法,但请不要说2.0是古董,这样会显得很无知。因为如果你建.net2.0的时候完全满足了你的需求,那么你就完全没必要用3.0,知道为什么吗?
    你看看你的3.0 3.5项目用到的普通的引用比如system.windows.form啦,system.data啦,只要不是用到WPF,WCF,linq等,你看看就算你的是.net3.0和3.5项目到底是引用的啥?是不是就是.net2.0的,呵呵
    这和以前的.net1.1有本质区别,MS觉得.net2.0成熟了,以后的3.0和3.5都是在2.0基础上增加功能,除了新功能以前功能全是直接使用的2.0。所以VS2008建立的项目可以同时让你使用2.0 3.0 3.5,只是用.net2.0少了WPF等东西而已,其他无任何区别。2.0 3.0 3.5功能完全不重合,所以3.0 3.5无法独立于2.0存在,安装包里面都要把2.0 2.0SP1的打包在一起带上。除非用到3.0,3.5的新功能,否则完全没必要用3.5的项目,你可以说1.1是古董,因为2.0完全不依赖1.1,但说2.0是古董的说法我很不赞同,没这个古董我倒要看看3.0和3.5郎个运行,一般来说3.0和3.5项目大半还是引用的2.0的东西。
      

  5.   

    因为LZ本来说的就是"我在软件里也只是用到了数据库等简单的访问。 "
    所以我建议你直接用.net2.0的项目。
    当然你的那个简单的数据库访问用到linq了当我没说,不过一般人都不会这样去想吧。还有就算你是.net3.5的项目,但项目中却一点没用到3.0和3.5的东西,不信你可以试一下,如果只是一个winform+ado的项目,你把你的项目生成后放到一个只安装了.net2.0framework的XP上运行一点问题没有。
    其实很好解释上面也说了,虽然.net3.5项目默认会引用到3.5新增的东西比如system.xml.linq等,但代码中没用到的话是不会有问题的。
    你添加引用看看就知道2.0和3.5项目有啥不同了,不过是3.5新增的东西不能引用而已。再次强调:3.0不是替代2.0的,3.5也不是替代3.0的,而是对2.0功能的加强,它们是一体的。3.0带来的主要是WPF WCF,3.5带来的主要是linq,没有2.0是古董之说。
      

  6.   


    1 你只需要让他下载你编译好的文件就行了,告诉他需要.net2.0支持,别当这些人都傻的,也许早就已经安装好了。(当然,如果开发的软件是针对完全不懂电脑的人,而且又在没有电脑管理人员的情况除外,比如一些木马就不太好做了)2 用不了,让他安装一下.net框架,setup一下很简单,版本很清晰,一说就会,不会出现DLL陷阱,如果是别的大软件,只会更麻烦,各种版本冲突的问题你远程都压根没法查。
      部署也很简单,你自己的DLL和EXE放在一个文件夹下,安装了.net框架,根本就不用安装你的程序就可以运行了,想想OFFICE可以么?
      这个客户都能重装系统了,还不会装.net框架?
      所以只会减少维护成本,不会增加。3 1.1的有集成了吧,不集成也没关系,能安装你程序的人,安装.net框架不会更困难,不能安装.net框架的人安装你的程序一样困难。
    很多说客户端装net framework有困难的都是矫情,想当然而已
      

  7.   


    NET Framework本来就是一个虚拟机,和XP系统一样。事实上,200M的是3.0的了,比XP功能更多。原来你开发的软件要考虑客户是2000,XP,2003,Vista,自带什么什么库,一样麻烦,现在简单多了,你开发的在2.0下,让客户装2.0框架就行了,管他什么操作系统,以后甚至管他是不是微软的操作系统,不是更好?
      

  8.   

    To:13楼-14楼 Slicelee感谢你的分析,受益非浅,让我明白了各版本的关系。我是刚开始学C#,作为了个初学者,我觉得应该安装最新的版本,并且也觉得新版本的诸多功能比以前好用,LINQ让我可以非常灵活的操作 DataTable,RDLC报表也很方便,编程环境也好于VS2005,更符合自己的编程习惯,在技术上,我觉得能用新技术就用,包括WPF,B/S也在计划中。我说2.0是古董,确实是我不了解,还请谅解,谁都有冲动的时候。以前我们学的DBF,当我们毕业的时候,已经是VFP的天下了,而如今VFP都被微软淘汰了,我也只能与时俱进,用一个新的语言,难免形成对比,要改变很多使用习惯,思维习惯,现在也比较适应了,针对各种各样的问题,能得到大家的指导,我很高兴,让我的学习效率提高。我还是会用3.5,如果出4.0,我也会用,只要是好东西,都想去学,我很庆幸在我学习的时候,2008出来了,可以站在更高的起点。