/**************************<< 平台部署发布案例总结2014/07 >> ****************************/
VS.NET WEB项目/网站 部署和安装概述
1. Net. WEB项目分类
WEB项目结构分为Web Application Project (web,services,wpf,mvc..) 和Web Site Project
主要的差异在 Web Site Project 可以不必编译就可以修改程式看到結果, 而Web Application Project使用了增量编译模式,仅只有文件被修改后,这部分才会被增量编译进去, 先編译然后才可查看结果,我们的平台(PlatForm)采用Web Site的方式.
但Web Site Project 虽然不需要编译,可是程式的代码因为未经编译成DLL的过程,可能导致会让代码外洩,会生成随机的程序集名,需要通过插件WebDeployment才可以生成单一程序集.
使用webApplication的方式,可以指定网站项目生成单一程序集,因为是独立的程序集,所以和其他项目一样可以指定应用程序集的名字、版本、输出位置等信息, 也可以将网站拆分成多个项目以方便管理, 它还支持VSTS的Team Build, 方便每日构建, 可以对编译前后进行自己规定的处理,对App_GlobalResources的Resource强类支持等.
建议一般采用webApplication的方式建站.
2. VS WEB发布安装可分为三种方式:
1. 创建Web安装部署项目, 生成web.Setup安装包,用于产品版本发布
2. 直接发布网站(适用于web site站点).
3. 插件部署(PluginInstaller, aspnet_compiler.exe, WebDeploy…)
发布历史:
1. Vs2003下的网站生成后可以生一个唯一的命名程序集(项目名称.dll)
2. Vs2005,Vs2008默认为每个webSite或页面随机命名的App_web xxx.dll.., 如果不采用预编译的方式那么产生的文件会更多,这样会给想Copy Patse方式的更新带来不便.所以可以用三方插件的方式打包部署.
3. Vs201X 出于这个原因所在VS2010后的版本中,VS已经自带有发布署的功能.对于VS2005,2008或转换的旧版本还是要借助于WDP这个小工具进行打包发布.
3. 插件部署(WebDeploy)
Web Deploy 安装
客户端需要安装打包插件(webDeploymentStep for vs2010):
服务端组件安装(web Deploy V3.X):
http://www.microsoft.com/zh-cn/download/details.aspx?id=39277
优点:
1.合成aspx下cs,appcode下cs及web下的cs文件,可以使网站安全并且使网站性能提高
2.可以及时发现一些认为不是很大的错误,在生成网站或生成解决方案时忽略的错误等,尤其是一些不合伦理的继承类,以及一些文件重名。
- 4. 案例分析之----TianYi平台项目WebDeploy打包步骤
Tianyi Web站点采用的是Web Site的建站方式,在不需要转换项目迁移的情况下,应采用插件WebDeploy方式部署.
4.1 站点项目首选使用Release配置
4.2 使用web Deployment Project..方式打包.
填写输入生成网站包及目录的名称[如:WebDeploy]
4.3 配置WebDeploy属性.
Output Assemblies中的四大选项:(建议选择第三项[可起名为:OperateDLL.dll等])
1, Merge all outputs to a single
assembly-所有输出都编译成一个程序集(参数: 程序集名称)
Treat as library component (remove the App_Code.compiled
file) -App_Code视为类库(删除App_Code.compiled文件)
2, Merge each individual folder output to its
own assembly -WEB项目中单独的目录会编译到一个.程序集中(参数: 程序集前缀)
3, Merge all pages and control outputs to a
single assembly -所有页面UI编译到一个程序集中其它控件,资源文件等编译到别外一个程序集中。(参数: 程序集名称)
4, Create a separate assembly for each page and
control output -为每一个页面和控件创建程序集
4.4 配置更新或替换Config文件设置(可选)
Enable Web.config file
section replacement
你可以在开发时用自己的web.config设定,但是在部署的时候动态替换成另一个web.config的内容,例如你可以替换appSettings或connectionStrings的内容
4.5 生成部署包.. 或 生成项目 [WebDeploy.ZIP 和PackageTmp文件]
4.6 服务器部署或更新.
服务端启用Web Deploy服务
自动更新—VS201x自带的发布包可进行远程生动更新.
手动更新--导入导出操作
1. 对于新发布的网站需要导入操作[WebDeploy.ZIP]
2. 对于更新的网站也可以导入[附加操作],或者手动[WebDeploy.ZIP]
3. 手动Copy + Paste操作[对于少部分文件,可更新Bin中的dll,或修改的页面aspx文件等资源文件]
1. 导入ZIP文件:
2. Copy + paste部分更新:
对于少部分更新文件,可用于Copy操作[请从部署包中选择需要更新的文件: …\obj\Release\Package\PackageTmp\]
从PackageTemp文件夹中Copy BIN文件下的dll文件,或修改后的aspx页面文件或其它资源文件.
打包后的aspx页面的区别就是多指向了”xxxx, OperateDLL”这个程序集.
设置WEB站点虚拟目录并加入读写用户权限IISUser等
- 5. 数据部署
数据项目脚本发布/迭代/更新..