- 浏览: 33281 次
- 性别:
- 来自: 北京
最新评论
我的新闻管理系统http://cms.bmw.net.cn/Index.aspx是按照本文中的方法发布的.
在Visual Studio 2003下开发网站的都知道ASP.NET 1.1网站生成后都是一个唯一命名的程序集(项目名
称.DLL),但是这种情况在Visual Studio 2005的网站开发中不见了。Visual Studio 2005给我们提供了“发布网站”这样“方便”的功能,不用像以前一样COPY的部署,但是采用其“发布网站”的功能,会在站点的BIN目录中产生App_Code.compiled,App_Code.dll,App_Web_xxxxxx.dll,项目名称.dll等等这样的程序集,如果不采用预编译的方式那么产生的文件会更加的多,因为很多都是随机命名也没有什么规律可言;这样会给那些想COPY更新的人带来不便,因为原来的文件不能被覆盖,需要先删除再COPY;有很多时候可能就是更新了后台代码,直接生成项目或是WEB的程序集,像以前一样直接覆盖DLL的方式也很简单。
下面将介绍我采用Microsoft Web Deployment Projects在Visual Studio 2005中生成唯一程序集的方法。
先下载Microsoft Web Deployment Projects,地址是:
http://msdn2.microsoft.com/en-us/asp.net/aa336619.aspx
声明一下,我用的VS2005是Team suit版本的。
安装后在“生成”和WEB项目的上下文菜单看到“Add Web Deployment Project…”,好了,现在在解决方案中点你的网站项目名称,右键,添加一个Web Deployment Project项目,起一个名称,这个名称就是将来编译后生成的程序集名称,默认的名称“当前项目名称_deploy”(我的项目是Web_deploy),这样操作后项目解决方案中会多一个项目Web_deploy,然后我们对Web_deploy进行操作就可以达到我们的目的了。
右键打开Web_deploy项目的属性页面,察看“配置属性”,先看"Compilation"选项:
Compilation中的Output Folder设置项目输出路径,这个可以默认。
我们把Generate debug information和Allow this precompiled site to be updatable两项的对勾打上。
Output Assemblies中的四大选项:
1. Merge all outputs to a single assembly-所有输出都编译成一个程序集(参数:程序集名称) 1.1 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-所有页面控件编译到一个程序集中(参数:程序集名称)
4. Create a separate assembly for each page and control output-为每一个页面和控件创建程序集Signing使用key文件建立强命名空间的程序集这里我们只需要设置“1. Merge all outputs to a single assembly-所有输出都编译成一个程序集(参数:程序集名称)”(我设置的是Web_deploy)和“1.1 Treat as library component (remove the App_Code.compiled file)-App_Code视为类库(删除App_Code.compiled文件)”(这个对勾要打上)。
这样,我们再把程序的页面继承关系改一下就可以发布网站了!举个例子:
网站中每个ASPX文件的PAGE我们这样改:
Index.aspx
<%@ page Language="C#" MasterpageFile="~/MasterPage.master" AutoEventWireup="true"
CodeFile="Index.aspx.cs" Inherits="wjj.Web.Index" Title="首页" %>
注意其中的Inherits="wjj.Web.Index",wjj.Web是我网站的我自己定义的命名空间。
Index.aspx.cs也要加上命名空间
namespace wjj.Web
{
public partial class Index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
好了,点项目Web_deploy右键---重新生成就可以了,终于把问题解决了!
Index.aspx生成后的PAGE如下:
<%@ page language="C#" masterpagefile="~/MasterPageDefault.master" autoeventwireup="true"
inherits="wjj.Web.Index, Web_deploy" title="首页" %>
posted @ 2006-11-22 09:25 碧血黄沙.NET 阅读(6074) 评论(24) 编辑 收藏 网摘 所属分类: ASP.NET
发表评论
回复 引用 查看 #1楼 2006-11-22 09:39 | 冰戈 有没有不装Microsoft Web Deployment Projects的解决办法?
回复 引用 查看 #2楼 2006-11-22 09:40 | yunhuasheng 谢谢,正需要呢!
回复 引用 #3楼 2006-11-22 09:44 | roydu [未注册用户] 谢谢!转了啊,每次全部更新真麻烦.
回复 引用 #4楼 2006-11-22 09:46 | roydu [未注册用户] 再顶一下,老大真是及时雨.
回复 引用 #5楼 2006-11-22 09:54 | cc[匿名] [未注册用户]
哪个随即身成的dll太无聊
确实还可以
回复 引用 #6楼 2006-11-22 10:30 | wav [未注册用户] 确实不错,更新方便多了.但是aspx和cs文件也得改太麻烦了.经过测试,我发现不用改aspx和cs文件,只更新项目的dll文件就可以运行.不知道这样做会不会有问题?
回复 引用 #7楼 2006-11-22 10:32 | Bluesky[匿名] [未注册用户] 感觉这个不太好用,有时会出现合并错误。还是等sp2吧。
回复 引用 查看 #8楼 [楼主]2006-11-22 10:58 | 碧血黄沙 唯一遗憾的是发布的时候还是把目标文件夹下的文件全部删除后重新生成,而不是在原有基础上更新文件
回复 引用 #9楼 2006-11-22 11:38 | huobazi [未注册用户] 没有必要改文件
回复 引用 查看 #10楼 2006-11-22 12:20 | Daniel Phang 那个随即生成DDL的确实比较郁闷,我后来都用WebApplication了
回复 引用 查看 #11楼 2006-11-22 12:27 | ※ABeen※ 用编译命令完成不是更好吗!也不用去安装什么东西了。
方法介绍如下:
预编译 ASP.NET 网站以进行部署(推荐给客户部署时使用)
打开一个命令窗口并定位到包含 .NET Framework 的文件夹。
.NET Framework 将安装在以下位置。
%windir%\Microsoft.NET\Framework\version
运行 aspnet_compiler 命令,将源指定为虚拟路径或物理路径,指定目标文件夹,并指定一个开关以指示是要同时编译代码和 .aspx 页(默
认设置)还是只编译代码。
aspnet_compiler -v virtualPath targetPath
如果您的网站不是 IIS 应用程序,并因此 IIS 元数据库中没有项,请为 -v 开关使用下面的值:
aspnet_compiler -p physicalOrRelativePath -v / targetPath
如果要预编译该站点以进行部署和更新,请包括 -u 开关,如下面的代码示例所示。
aspnet_compiler -p physicalOrRelativePath -v / targetPath -u
targetPath 参数是物理路径。
回复 引用 #12楼 2006-11-22 13:40 | 幻想曲 [未注册用户] 我早就开始用这个了
不需要改什么配置,最多改一改程序集名称
至于.aspx页面更没改过了....
回复 引用 查看 #13楼 2006-11-22 14:12 | 尧尧 没有改过,没必要吧
回复 引用 #14楼 2006-11-22 14:21 | cw [未注册用户] ok
回复 引用 #15楼 2006-11-22 14:38 | cw [未注册用户] 实际上不应该生成唯一程序集, 2.0的做法是正确的, 我们怎么却在开倒车呢???
项目越大, 这种2.0编译模式的优点越是明显...
回复 引用 #16楼 2006-11-22 23:18 | sdfg [未注册用户] 进入博客专题研究http://www.xghk.cn
进 入博客专题研究http://xghk.cn
回复 引用 查看 #17楼 2006-11-23 10:27 | yunhuasheng 谢谢,对我有些用处.
回复 引用 #18楼 2006-11-23 13:57 | chuanzai [未注册用户] 2.0有web site 和 web application
1.1下只有web application
用web application不就好了!
回复 引用 查看 #19楼 2006-11-23 16:07 | jick web application?
难用得要死!
回复 引用 #20楼 2006-11-24 09:24 | chy710 [未注册用户] http://www.cnblogs.com/chy710/archive/2006/10/26/540959.html
回复 引用 #21楼 2006-12-25 18:10 | MYQQ [未注册用户] 好用,谢谢!
回复 引用 #22楼 2007-04-20 08:55 | cb [未注册用户] 海基会
回复 引用 #23楼 2007-04-20 08:56 | cb [未注册用户] ,mbv
回复 引用 #24楼 2007-12-27 17:59 | ldcah [未注册用户] 谢谢楼主,现在问题解决了,还满好用的
在Visual Studio 2003下开发网站的都知道ASP.NET 1.1网站生成后都是一个唯一命名的程序集(项目名
称.DLL),但是这种情况在Visual Studio 2005的网站开发中不见了。Visual Studio 2005给我们提供了“发布网站”这样“方便”的功能,不用像以前一样COPY的部署,但是采用其“发布网站”的功能,会在站点的BIN目录中产生App_Code.compiled,App_Code.dll,App_Web_xxxxxx.dll,项目名称.dll等等这样的程序集,如果不采用预编译的方式那么产生的文件会更加的多,因为很多都是随机命名也没有什么规律可言;这样会给那些想COPY更新的人带来不便,因为原来的文件不能被覆盖,需要先删除再COPY;有很多时候可能就是更新了后台代码,直接生成项目或是WEB的程序集,像以前一样直接覆盖DLL的方式也很简单。
下面将介绍我采用Microsoft Web Deployment Projects在Visual Studio 2005中生成唯一程序集的方法。
先下载Microsoft Web Deployment Projects,地址是:
http://msdn2.microsoft.com/en-us/asp.net/aa336619.aspx
声明一下,我用的VS2005是Team suit版本的。
安装后在“生成”和WEB项目的上下文菜单看到“Add Web Deployment Project…”,好了,现在在解决方案中点你的网站项目名称,右键,添加一个Web Deployment Project项目,起一个名称,这个名称就是将来编译后生成的程序集名称,默认的名称“当前项目名称_deploy”(我的项目是Web_deploy),这样操作后项目解决方案中会多一个项目Web_deploy,然后我们对Web_deploy进行操作就可以达到我们的目的了。
右键打开Web_deploy项目的属性页面,察看“配置属性”,先看"Compilation"选项:
Compilation中的Output Folder设置项目输出路径,这个可以默认。
我们把Generate debug information和Allow this precompiled site to be updatable两项的对勾打上。
Output Assemblies中的四大选项:
1. Merge all outputs to a single assembly-所有输出都编译成一个程序集(参数:程序集名称) 1.1 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-所有页面控件编译到一个程序集中(参数:程序集名称)
4. Create a separate assembly for each page and control output-为每一个页面和控件创建程序集Signing使用key文件建立强命名空间的程序集这里我们只需要设置“1. Merge all outputs to a single assembly-所有输出都编译成一个程序集(参数:程序集名称)”(我设置的是Web_deploy)和“1.1 Treat as library component (remove the App_Code.compiled file)-App_Code视为类库(删除App_Code.compiled文件)”(这个对勾要打上)。
这样,我们再把程序的页面继承关系改一下就可以发布网站了!举个例子:
网站中每个ASPX文件的PAGE我们这样改:
Index.aspx
<%@ page Language="C#" MasterpageFile="~/MasterPage.master" AutoEventWireup="true"
CodeFile="Index.aspx.cs" Inherits="wjj.Web.Index" Title="首页" %>
注意其中的Inherits="wjj.Web.Index",wjj.Web是我网站的我自己定义的命名空间。
Index.aspx.cs也要加上命名空间
namespace wjj.Web
{
public partial class Index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
好了,点项目Web_deploy右键---重新生成就可以了,终于把问题解决了!
Index.aspx生成后的PAGE如下:
<%@ page language="C#" masterpagefile="~/MasterPageDefault.master" autoeventwireup="true"
inherits="wjj.Web.Index, Web_deploy" title="首页" %>
posted @ 2006-11-22 09:25 碧血黄沙.NET 阅读(6074) 评论(24) 编辑 收藏 网摘 所属分类: ASP.NET
发表评论
回复 引用 查看 #1楼 2006-11-22 09:39 | 冰戈 有没有不装Microsoft Web Deployment Projects的解决办法?
回复 引用 查看 #2楼 2006-11-22 09:40 | yunhuasheng 谢谢,正需要呢!
回复 引用 #3楼 2006-11-22 09:44 | roydu [未注册用户] 谢谢!转了啊,每次全部更新真麻烦.
回复 引用 #4楼 2006-11-22 09:46 | roydu [未注册用户] 再顶一下,老大真是及时雨.
回复 引用 #5楼 2006-11-22 09:54 | cc[匿名] [未注册用户]
哪个随即身成的dll太无聊
确实还可以
回复 引用 #6楼 2006-11-22 10:30 | wav [未注册用户] 确实不错,更新方便多了.但是aspx和cs文件也得改太麻烦了.经过测试,我发现不用改aspx和cs文件,只更新项目的dll文件就可以运行.不知道这样做会不会有问题?
回复 引用 #7楼 2006-11-22 10:32 | Bluesky[匿名] [未注册用户] 感觉这个不太好用,有时会出现合并错误。还是等sp2吧。
回复 引用 查看 #8楼 [楼主]2006-11-22 10:58 | 碧血黄沙 唯一遗憾的是发布的时候还是把目标文件夹下的文件全部删除后重新生成,而不是在原有基础上更新文件
回复 引用 #9楼 2006-11-22 11:38 | huobazi [未注册用户] 没有必要改文件
回复 引用 查看 #10楼 2006-11-22 12:20 | Daniel Phang 那个随即生成DDL的确实比较郁闷,我后来都用WebApplication了
回复 引用 查看 #11楼 2006-11-22 12:27 | ※ABeen※ 用编译命令完成不是更好吗!也不用去安装什么东西了。
方法介绍如下:
预编译 ASP.NET 网站以进行部署(推荐给客户部署时使用)
打开一个命令窗口并定位到包含 .NET Framework 的文件夹。
.NET Framework 将安装在以下位置。
%windir%\Microsoft.NET\Framework\version
运行 aspnet_compiler 命令,将源指定为虚拟路径或物理路径,指定目标文件夹,并指定一个开关以指示是要同时编译代码和 .aspx 页(默
认设置)还是只编译代码。
aspnet_compiler -v virtualPath targetPath
如果您的网站不是 IIS 应用程序,并因此 IIS 元数据库中没有项,请为 -v 开关使用下面的值:
aspnet_compiler -p physicalOrRelativePath -v / targetPath
如果要预编译该站点以进行部署和更新,请包括 -u 开关,如下面的代码示例所示。
aspnet_compiler -p physicalOrRelativePath -v / targetPath -u
targetPath 参数是物理路径。
回复 引用 #12楼 2006-11-22 13:40 | 幻想曲 [未注册用户] 我早就开始用这个了
不需要改什么配置,最多改一改程序集名称
至于.aspx页面更没改过了....
回复 引用 查看 #13楼 2006-11-22 14:12 | 尧尧 没有改过,没必要吧
回复 引用 #14楼 2006-11-22 14:21 | cw [未注册用户] ok
回复 引用 #15楼 2006-11-22 14:38 | cw [未注册用户] 实际上不应该生成唯一程序集, 2.0的做法是正确的, 我们怎么却在开倒车呢???
项目越大, 这种2.0编译模式的优点越是明显...
回复 引用 #16楼 2006-11-22 23:18 | sdfg [未注册用户] 进入博客专题研究http://www.xghk.cn
进 入博客专题研究http://xghk.cn
回复 引用 查看 #17楼 2006-11-23 10:27 | yunhuasheng 谢谢,对我有些用处.
回复 引用 #18楼 2006-11-23 13:57 | chuanzai [未注册用户] 2.0有web site 和 web application
1.1下只有web application
用web application不就好了!
回复 引用 查看 #19楼 2006-11-23 16:07 | jick web application?
难用得要死!
回复 引用 #20楼 2006-11-24 09:24 | chy710 [未注册用户] http://www.cnblogs.com/chy710/archive/2006/10/26/540959.html
回复 引用 #21楼 2006-12-25 18:10 | MYQQ [未注册用户] 好用,谢谢!
回复 引用 #22楼 2007-04-20 08:55 | cb [未注册用户] 海基会
回复 引用 #23楼 2007-04-20 08:56 | cb [未注册用户] ,mbv
回复 引用 #24楼 2007-12-27 17:59 | ldcah [未注册用户] 谢谢楼主,现在问题解决了,还满好用的
发表评论
-
动态生成WORD内容
2009-09-15 14:12 975//动态生成WORD内容 St ... -
页面静态化
2009-09-03 10:25 12781替代法 1.1引用地址 http://www.cnbl ... -
面试
2009-08-18 13:09 23251.简述 private、 protected、 public ... -
批量写数据---将XML数据批量写入数据库
2009-08-18 13:06 1885将数据批量写入数据库的需求是比较多的,方法也有很多种,在.ne ... -
更改 Visual Studio 中用户界面文本所使用的语言
2009-08-06 21:26 1706在“工具”菜单中单击“选项”。 在“选项”对话框中展开“环境 ... -
Visual Studio 2005 图像库
2009-08-06 21:22 1139Visual Studio 2005 图像库是 ... -
SSO与用户登录问题容易混淆
2009-08-01 13:02 939单点登陆(SSO),多个系统一次登陆权限均配, 彼此 ... -
.NET设计模式开篇
2009-07-03 23:58 836这几天在看设计模式方面的书,所以记录一下. 1.设计模式是规则 ... -
NET安装模板
2009-06-02 19:52 794菜单->Tools->option->pro ... -
在InstallShield中手动修改XML Files Changes
2009-05-10 13:43 1817最近在忙于打包安装程序,使用的是InstallShield 1 ... -
Visual Studio小技巧:复制代码时,保留原ID
2009-05-10 13:40 1155在我们开发过程中,经常会复制一些代码,而Visual Stud ... -
C#操作数据库备份和还原
2009-04-28 11:11 2391C#实现SQLSERVER2000数据库备份还原的两种方法 ... -
FreeTextBox 1.6.3 (中文版)在新闻发布、博客写作、论坛社区等多种 Web 系统中都
2009-03-29 16:20 2281FreeTextBox 1.6.3 (中文版) ... -
C#编写最小化时隐藏为任务栏图标的Window appllication
2009-03-29 16:14 23371.设置窗体属性showinTask=false 2.加no ... -
WEB技巧[搜集整理]
2009-03-29 16:10 720http://www.logomaker.cn 控制横向和 ... -
漂亮的 js 日历(把日期输入到文本框)
2009-03-29 16:07 1389<!DOCTYPE HTML PUBLIC &quo ... -
.Net 图片上传的一个类库的源码
2009-03-29 16:05 1329上传图片到服务器上是网站开发中很常用的功能,它的实现也很简单, ... -
页面间传值的方法总结
2009-02-20 14:54 993ASP.NET提供了卓越的事件驱动编程模型,让开发者简化了应用 ... -
无法将类型“ASP.login_aspx”转换为“System.Web.UI.WebControls
2009-02-20 11:18 1448发布网站里遇到,无法将类型“ASP.login_aspx”转换 ... -
VSS使用过程中的问题
2008-12-20 11:46 1001VSS客户端不能访问问题“unable to open use ...
相关推荐
通过学习《精通ASP.NET 2.0 + SQL 2005 项目开发》,读者将能够掌握如何使用ASP.NET 2.0开发动态网站,利用SQL Server 2005进行数据存储和处理,以及如何将两者有效整合,构建出高效、安全的Web应用程序。...
ASP.NET 2.0 和 SQL Server 2005 是两个关键的技术栈,它们在Web应用程序开发中扮演着重要角色。本资源集包含了基于这两项技术的开发实例,旨在帮助开发者深入理解如何将它们结合使用。 ASP.NET 2.0 是微软.NET ...
《精通ASP.NET 2.0 & SQL Server 2005项目开发》是一本专为IT专业人士准备的指南,特别是针对那些希望深入了解这两种技术在实际项目中的应用的初学者。这本书通过实例教学的方式,深入浅出地介绍了如何利用ASP.NET ...
Visual Studio 2005提供了一个专门的转换向导,可以帮助开发者将ASP.NET 1.x项目转换为2.0格式。该向导可以自动检测并报告潜在的问题,并提供修复建议。 - **转换报告** 转换完成后,转换向导会生成一份详细的...
ASP.NET 2.0 是微软推出的用于构建动态网站和web应用程序的框架,它基于.NET Framework 2.0。本教程主要关注的是使用C#语言进行ASP.NET开发的基础知识。 首先,ASP.NET页面的扩展名是.aspx,这表明该文件是一个ASP...
ASP.NET 2.0是微软推出的用于构建动态网站、Web应用程序和Web服务的框架,它建立在.NET Framework 2.0之上,提供了丰富的功能和工具,使得开发者能够更高效地构建交互性强、性能优良的Web应用。本入门精通PDF全集...
ASP.NET 2.0是微软公司推出的一种基于.NET Framework的Web应用程序开发框架,它极大地简化了Web应用的构建过程,并提供了丰富的功能集。本电子书《ASP.NET 2.0网络开发技术》深入探讨了这一技术的核心概念和实践应用...
ASP.NET 2.0 是微软推出的用于构建动态网站和Web应用程序的框架,它基于.NET Framework。这个基础教程针对的是初学者,旨在帮助他们掌握使用ASP.NET 2.0进行电子商务类网站开发的基本技能。 首先,ASP.NET 2.0 页面...
ASP.NET 2.0 是微软开发的一个用于构建Web应用程序的框架,它在.NET Framework 2.0的基础上提供了更丰富的功能和更高的开发效率。这个“ASP.NET 2.0 数据库项目案例导航”很可能是针对使用ASP.NET 2.0进行数据库交互...
8. ** Membership 和 Role Provider**:ASP.NET 2.0引入了会员和角色提供程序,为网站的用户管理和权限控制提供了标准接口,简化了安全性的实现。 9. **状态管理**:改善了视图状态(ViewState)和控件状态...
ASP.NET 2.0 是微软推出的Web应用程序开发框架,它为开发者提供了强大的工具和功能,使得构建动态网站、Web应用程序和服务变得更加便捷。本教程重点聚焦于ASP.NET 2.0中的数据绑定高级技巧,这对于创建数据驱动的...
ASP.NET 2.0是微软开发的一个用于构建Web应用程序的框架,它在.NET Framework 2.0的基础上构建,为开发者提供了强大的工具集和丰富的功能,极大地简化了Web应用的开发流程。这本书《ASP.NET 2.0编程珠玑--来自MVP的...
### ASP.NET 2.0 编译模型 #### 回顾 ASP.NET 1.x 代码模型 在深入了解 ASP.NET 2.0 的编译模型之前,我们先回顾一下 ASP.NET 1.x 中的两种主要代码模型:传统的 ASP 模型(代码内联)和代码隐藏模型。 **传统的 ...
ASP.NET 2.0是微软.NET框架下的一个组件,用于构建动态网站、Web应用和Web服务。它提供了丰富的服务器控件、事件驱动模型以及自动页面生命周期管理,使得开发者能够用C#或VB.NET等语言轻松地编写网页。ASP.NET 2.0...
ASP.NET 2.0是微软公司推出的一种基于.NET Framework的Web应用程序开发框架,它极大地简化了Web应用的构建过程,并提供了丰富的功能集。本教程PPT聚焦于ASP.NET 2.0动态网站的开发,旨在帮助开发者掌握这一核心技术...
总之,ASP.NET 2.0和SQL Server 2005的结合为开发者提供了强大的工具集,用于构建功能丰富的、高性能的Web应用程序。通过深入学习和实践,开发者能够掌握这两者间的协同工作,从而在项目中实现高效的数据管理和动态...
ASP.NET 2.0是微软开发的一个用于构建动态网站、Web应用程序和服务的框架。Web2.0则代表了互联网的第二次浪潮,强调用户交互、内容共创和社区建设。本电子教程详细介绍了如何利用ASP.NET 2.0的技术特性来实现Web2.0...
这个压缩包包含三份文档,分别是"Visual Studio 2005开发环境.pdf"、"C#2.0程序设计基础.pdf"以及"ASP.NET2.0 页面基本对象.pdf",涵盖了从开发工具到编程语言再到ASP.NET核心概念的多个方面。 首先,"Visual ...