MyException - 我的异常网
当前位置:我的异常网» C# » 请教怎么用vs2003做web安装项目,请详细些,本人新

请教怎么用vs2003做web安装项目,请详细些,本人新手,连发布也不会,多谢

www.MyException.Cn  网友分享于:2015-08-26  浏览:65次
请问如何用vs2003做web安装项目,请详细些,本人新手,连发布也不会,谢谢。
请问如何用vs2003做web安装项目,请详细些,本人新手,连发布也不会,谢谢。
另外,“msado20.tlb”无法排除,怎么办啊?

------解决方案--------------------
参考
http://www.cnblogs.com/xucanzhao/archive/2005/10/02/248063.html
------解决方案--------------------
一、概述 

在深入到配置和部署ASP.NET Web应用程序的具体步骤之前,理解配置(Setup)和部署(Deployment)之间的区别是十分必要的。配置是指将应用包装成易于部署的形式,包装好之后的应用程序可以方便地安装到目标服务器上。部署是一个获得应用程序并将它安装到另一台机器上过程,一般通过安装程序完成。 

许多用户都曾经遇到过Windows软件安装技术的脆弱点——当我们安装某个软件的新版本时,安装程序将新版的dll文件复制到系统目录,同时执行所有必要的注册表修改操作,但是,安装操作可能影响其他运行在同一机器上的软件,尤其是原有的软件和新安装的软件共享某一组件时,出现问题的可能性更大。如果新安装的组件与它的早期版本向后兼容,当然没有问题,但许多情况下,完全保持向后兼容难以做到,所以经常会遇到安装了一个新软件之后损坏原有软件的情形,这就是臭名昭著的DLL Hell问题。 

Visual Studio.NET(VS.NET)的设计目标之一就是解决安装Windows软件时经常遇到的问题。VS.NET应用的许多功能都依赖.NET框架类库实现,.NET框架类库建立了一个全新的编程模型,从而为极大地简化安装过程创造了条件。另外,VS.NET应用程序编译成程序集(Assembly),程序集是由一个或多个支持程序集运行的文件构成的部署单元。微软.NET框架引入了许多简化应用程序部署、解决DLL Hell问题的新特性,例如,配置信息可以保存在web.config配置文件,web.config配置文件是一个XML格式的文本文件,可以利用XCOPY之类的命令直接复制和部署到目标服务器。 

在探讨各种部署机制之前,我们首先来了解一下ASP.NET应用的结构,因为正是这个结构才使得应用能够方便地部署到目标服务器上。 

二、ASP.NET Web应用的结构 

ASP.NET应用程序由各种Web页面(.aspx和HTML文件)、处理程序、模块、执行代码和其他文件(例如图形文件,配置文件等)构成,这些文件都可以从Web服务器的虚拟目录引用。如果使用了.aspx文件的CodeBehind机制,ASP.NET应用程序还包含编译好的程序集,另外还有其他支持应用程序的程序集,例如,可以把应用的业务逻辑封装成一个单独的程序集。程序集一般位于应用程序虚拟目录的bin子目录下。要理解VS.NET如何简化部署过程,必须理解程序集的结构,因为正是程序集的结构特点才使得简化部署成为可能。程序集包含四种元素: 

⑴ MSIL代码,即微软中间语言代码:编译应用程序代码时,源代码被编译成所谓的MSIL代码。MSIL代码是.NET公共语言运行时环境(CLR)所理解的代码。 

⑵ 元数据:描述代码中定义的类型、方法和其他元素。 

⑶ Manifest:包含名称和版本信息,程序集中包含文件的清单,安全信息,等等。 

⑷ 支持文件和资源。 

从这个结构可以看出,程序集包含了完整的自我描述信息,所以VS.NET应用程序根本不必象COM组件那样在注册表中注册。这就是说,只要目标机器上也安装了.NET框架,安装VS.NET应用程序时只要简单地将必需的文件复制到目标机器就可以了,这就是所谓的XCOPY部署。不过,除了XCOPY之外,还可以使用VS.NET提供的“Web安装项目”实现自动部署。在接下来的内容中,我们将看到如何利用各种不同的部署机制部署一个Web应用。 

三、ASP.NET支持的部署机制 

ASP.NET Web应用程序支持下列三种部署方案: 

⑴ XCOPY部署 

⑵ 利用VS.NET的“复制项目”功能部署 

⑶ 使用VS.NET的“Web安装项目”部署 

在接下来的内容中,我们将深入了解所有这三种部署机制。为便于说明,我们先要创建一个Visual C# ASP.NET Web应用程序,应用的名称为DeploymentExampleWebApp,如图一所示。 
 

图一 


我们将以这个项目为例,阐述部署Web应用的各种方法。 

四、用XCOPY命令部署 

.NET框架的主要目标之一就是简化部署,例如支持XCOPY部署。在了解.NET如何支持XCOPY部署之前,我们先来看看XCOPY部署到底是怎么回事。在.NET之前,安装一个组件(例如一个COM组件)意味着不仅要把组件复制到适当的目录,而且还要执行注册表修改之类的操作。但现在有了.NET,安装一个组件的全部操作就是将程序集复制到客户应用程序的bin目录,由于程序集包含完整的自我描述信息,应用程序可以立即开始使用程序集。这一切之所以成为可能,是因为编译器将标识符和元数据信息嵌入到了编译好的模块之中,而CLR利用这些信息来装入程序集的适当版本。标识符包含了装入和运行模块、查找程序集引用的其他模块所需的所有信息。这种安装也称为无干扰(Zero-Impact)安装,因为系统不会因为修改注册表、配置组件而受到影响;另外,无干扰安装也使得组件卸载操作不会对系统产生任何意外的影响,卸载组件时只要从特定的目录删除某些文件就可以了。 

执行XCOPY部署时,唯一要做的就是打开一个命令窗口,用XCOPY命令将必要的文件复制到服务器的特定目录。图二显示了如何用XCOPY部署将名为DeploymentExampleWebApp的Web应用部署到目标服务器RemoteServer。 
 

图二


可以看到,XCOPY命令有许多选项: 

⑴ /E:表示将源位置的目录、子目录和文件都复制到目标位置,包括空目录。 

⑵ /K:保留所有现有的文件和文件夹的属性。默认情况下,XCOPY命令复制文件或目录结构时会忽略文件的属性,例如,如果文件原来有只读属性,复制到目标位置后只读属性丢失。要保留原来的文件属性,必须加上/K选项。 

⑶ /R:覆盖带有只读属性的文件。 

⑷ /O:保留文件或文件夹的所有与安全有关的ACL权限设置。 

⑸ /H:隐藏文件和系统文件也要复制。 

⑹ /I:要求XCOPY将目标位置视为一个目录,如指定的目录不存在,则创建它。 

把文件夹复制到目标服务器之后,接下来在目标服务器上用IIS管理器创建一个虚拟目录,把虚拟目录映射到XCOPY创建的物理目录——这就是用XCOPY将一个ASP.NET Web应用部署到远程服务器所要做的全部操作。



五、用VS.NET的“复制项目”功能部署 

VS.NET的“复制项目”功能使我们能够非常轻松地把ASP.NET Web应用部署到目标服务器。这个功能既可以把Web项目复制到同一服务器,也可以复制到不同的服务器。 

如果你用VS.NET开发Web应用程序,发布Web应用之前要做的第一件事情是把“活动的解决方案配置”从Debug改成Release,如图三所示,这个选项不仅使编译器优化代码,而且删除所有与调试有关的符号信息,使代码运行速度更快。打开配置管理器的步骤是:在“解决方案资源管理器”中选择Web应用项目,选择菜单“项目”→“XXXX项目属性”,其中XXXX是项目名称,再点击“配置管理器”。在“活动的解决方案配置”中选择“Release”。 
 

图三


要把Web项目复制到目标服务器,在VS.NET中选择菜单“项目”→“复制项目...”,VS.NET显示出图四的对话框。 
 

图四

文章评论

程序员都该阅读的书
程序员都该阅读的书
 程序员的样子
程序员的样子
10个调试和排错的小建议
10个调试和排错的小建议
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
旅行,写作,编程
旅行,写作,编程
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
每天工作4小时的程序员
每天工作4小时的程序员
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
那些争议最大的编程观点
那些争议最大的编程观点
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
为什么程序员都是夜猫子
为什么程序员都是夜猫子
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
一个程序员的时间管理
一个程序员的时间管理
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
编程语言是女人
编程语言是女人
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
Java程序员必看电影
Java程序员必看电影
老程序员的下场
老程序员的下场
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
程序员必看的十大电影
程序员必看的十大电影
我是如何打败拖延症的
我是如何打败拖延症的
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
鲜为人知的编程真相
鲜为人知的编程真相
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
程序员应该关注的一些事儿
程序员应该关注的一些事儿
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
中美印日四国程序员比较
中美印日四国程序员比较
程序员的鄙视链
程序员的鄙视链
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
程序员和编码员之间的区别
程序员和编码员之间的区别
我的丈夫是个程序员
我的丈夫是个程序员
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有