现在存在着的一个明显事实是所有的基于NET技术的应用程序或者产品都需要NET的运行库支持因为NET在程序部署和分发方面有些类似它需要NET Framework SDK的支持(JAVA应用程序需要JDK的支持才可以运行)不幸的是目前的Winx系列以及WinNT/系列均没有内置NET SDK(不难理解因为NET技术的推出的时间晚于上面提到的各种操作系统的发布时间)甚至连即将发布的WindowsXP都不会内置NET SDK
虽然没有了NET SDK的支持就连一个简单的在屏幕上面打印HelloWorld!的应用程序都无法运行那我们也不可能要求用户必须手工安装将近M的NET SDK后才能运行我们自己开发的应用程序!有没有更为简便的发布NET应用程序的方法呢?答案是肯定的下面我们就提供两种可以正确部署和发布NET应用程序的方法
用VSNET来部署和分发NET应用程序
无庸置疑的是VSNET是开发NET应用程序的一个非常强大和快捷的集成开发环境(IDE)微软历来在配合自己的应用技术方面都能做到尽善尽美当然我想也只有微软才能真正做到和NET技术的无缝衔接
下面我们就详细看看如何利用VSNET来部署和分发NET应用程序为了讲解的方便我们例举一个非常简单的Windows应用程序简单的在屏幕上面放置一个按钮Button
我们开发NET应用程序的测试环境是Windows Server中文版(SP)+VSNET Beta中文版
第一步在原有的项目基础上再新建立一个项目并且选择其中的安装和部署项目
尤其需要注意选择添入解决方案这个选项因为只有这样才会将部署项目和我们自己的应用程序放置到同一个解决方案当中这一点千万要注意了!
第二步点击确定按钮之后会出现安装向导
因为我们的NET测试程序是一个Windows应用程序所以我们在上图中选择创建用于Windows应用程序的安装程序(S)
点击下一步(N)我们将会看到需要选择的画面
图中的各个选择项目的含义相信大家可以从中文名称中直观的理解到我们就不再多费口舌了一路点击下一步直到最终安装向导的完成会需要步最终会在当前的解决方案中添加一个名称为Setup的安装项目
在这里我们稍微提一下在VSNET中的解决方案这个概念其实在VSNET中的所谓解决方案就类似于以前VB中的项目组概念也就是将多个项目集成到一起而已只不过VSNET中的解决方案这个概念的覆盖范围更广泛而已罢了这个我们知道一下就可以了
第三步在完成上面的两个步骤之后我们就会发现VSNET的安装向导已经将我们的应用程序中所用到的各种程序集系统DLL文件资源文件等等依赖文件找到了并且我们还可以方便的继续添加额外的我们需要的其他相关文件在这方面做的有些类似于InstallShield了不过不需要编写安装Script脚本
这样我们选择VSNET的菜单生成(B)—〉生成解决方案即可立即生成我们的安装文件Setupmsi这个安装文件你可以在你的应用程序解决方案所在的目录中找到
找到了这个安装文件你就会大吃一惊了即使我们的应用程序只有简单的一句话打包之后就会有M之大!不过没有办法VSNET会生成一个简洁的NET SDK放在我们刚才生成的那个安装文件当中
剩下来的事情就是直接在没有安装NET环境的Windowsx/NT//XP中运行我们的这个Setupmsi文件就可以了!
手工部署和分发NET应用程序
在上面的第一种方法中我们可以感受到VSNET来做NET应用程序的方便和快捷但是并不是所有的人都是使用VSNET集成开发环境来开发NET应用程序的对于一些小的应用程序根本不需要安装庞大的VSNET开发环境也可以方便的开发比如使用UtraEdit软件来编写小巧玲珑的NET应用程序也是一个不错的选择
在这里我们就说说如何不使用VSNET来自己手工的部署和分发我们的NET应用程序首先分两类
第一类基于Web的NET应用程序
对于这一类应用程序可以说在部署和分发方面是最为简单的了我们只需要将NET运行环境安装到我们自己的服务器上面就可以了用户端需要的仅仅是兼容IE以上的任何浏览器就可以了
第二类基于Windows的NET应用程序
对于这一类应用程序我们可以使用InstallShield安装软件来手工打包首先先在我们的NET Frameword SDK光盘中找到目录dotNet在这个目录里面我们可以发现一个大小大约M的一个安装文件这个就是我们的Net 的运行时刻文件类似于JAVA的JRE(JAVA运行时环境)这个文件的体积也是比较大的但是相对于NET SDK文件的庞大的M可以算是要好许多了
至于InstallShield的详细使用方法我在这里也无法透彻讲解不过使用起来是非常方便的我只提出需要注意的地方
()在使用InstallShield中可以稍微编写一段脚本来监测目标机器时候已经存在了NET的运行环境如果有了就不必安装NET运行时文件了
()所有我们自己的DLL文件不在需要注册只需要简单的将他们拷贝到我们应用程序所在的目录即可!
我们在这里例举的是使用InstallShield来制作安装程序当然还可以使用其它的任何第三方安装制作软件来部署和分发我们的NET应用程序比如Windows Installer等等
好了最终我们比较这两种部署和分发NET应用程序的方法我们可以看到使用第二种方法能够带来的一个潜在好处是我们可以将NET运行时环境文件和自己的应用程序分离开来从而在某些情况下可以大大减少部署安装应用程序的文件大小而第一种方法就不可以了他将始终将NET运行时环境文件打包进入安装文件但是第一种方法的优点也是显而易见的就是比较智能化需要人干预的地方很少并且如果需要部署和分发的NET应用程序是比较大型的软件的话我们推荐使用第一种方法!
相信在微软正式发布NET以及VSNET之后部署和分发NET应用程序将会变得更加简单和快捷但是最好的方式是希望微软在下一版本的操作系统中能够内置NET运行时环境就好了那样的话我们就不必时刻随身携带体积不算小的NET运行时环境文件了让我们拭目以待吧