例如:
VS2008 在发布网站时,bin 目录里为所有 cs 生成的 dll 文件每次都是随机命名的,像这样子的 App_Web_g2dnx-qj.dll, App_Web_s9nor8mv.dll,这样对更新 Live 站点很不方便,因为动态库名变了,涉及到每一个 aspx 文件每次都重新更改了对库的引用声明:
<%@ page language="C#"
inherits="_Default, App_Web_s9nor8mv" %>
即使有一个 cs 的小改动,由于生成的动态库名称不一样,造成所有的 aspx
文件都得重传一遍。如果能固定动态库的文件名,更新网站时就省事多了,只改了 cs 的话,重新生成 dll 文件,只需要替换这一个 dll
文件就 OK 啦。我们可以找到几种做法:
1. 在“发布网站”的选项中,勾选“使用固定命名和单页程序集”,每个页面对应的一个 dll,并且这个 dll
文件名是固定的(名字虽然看起来很随便),只要 aspx 文件名没变。这会生成大量的 dll
文件,实际应用中还没看到可取之处。
2. Web Deployment Projects with Visual Studio
2008下载地址:
http://download.microsoft.com/download/0/5/b/05b4424b-5b9b-4961-8ec6-91e9f1741b2d/WebDeploymentSetup.msi,安装文件十分小,
686K。
简单操作如下:
1) 下载后直接安装,安装完后打开VS2008;
2) 在[生成]->[发布网站]下面会多出一项[Add Web Deployment Project],
也可在要发布的网站项目上点右键.直接选取[Add Web Deployment Project],弹出属性对话框后.
设置好指定名称(如 WebSite1_deploy)和存放目录(c:\target), 添加后,
以看到当前解决方案中多了一项( WebSite1_deploy), WebSite1_deploy
有很多其它属性可以设置,其中有一重要的默认选项:
Merge all outputs to a single assembly
Assembly name: 是 WebSite1_deploy.
3) 在刚添加的方案中点右键->[生成], 或者是对 WebSite1_deploy 进行 Build
都会在前面指定的目录(c:\target) 中生成可发布的文件的目录了。进到 c:\target 目录中,翻一下你就会发现你的 Web
项目中所有的 cs 文件,包括 aspx 关联的和 App_Code 中的 css 文件都编译到
WebSite1_deploy.dll 文件中去了。aspx 文件的头部是:
<%@ page language="C#"
inherits="Default, WebSite1_deploy" %>
只要 WebSite1_deploy.dll 文件名是固定的,aspx 的声明部分也总是不变的,所以每次只是对 cs
文件的修改补,只需换个 WebSite1_deploy.dll 文件就行啦。
相比于第二、三种方法,只需一次设置,用不着每建一个 aspx 文件对代码文件进行搬动,还得改改 aspx 文件的声明部分,而且对于
Web Site 也能构建出 DEBUG
的版本出来,所以这应该是终极的。
1、首先下载WebDeploymentSetup.msi (单击可下载)下载地址:http://pan.baidu.com/share/link?shareid=547386&uk=486628598
2、安装完以后重新启动vs,右键单击项目出现如下图所示
3、选择Add Web Deployment Project 出现如下图所示
4、单击 ok 项目中多出一个文件 如下图
5、在上图的项目上单击右键 选择生成 就可以了
6、发布以后所有的web dll文件将会编译成一个dll文件