`
chenqingwei
  • 浏览: 32221 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

VS2005下为ASP.NET 2.0网站生成唯一程序集

    博客分类:
  • NET
阅读更多
我的新闻管理系统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 [未注册用户] 谢谢楼主,现在问题解决了,还满好用的

分享到:
评论

相关推荐

    asp.net知识库

    ASP.NET2.0中themes、Skins轻松实现网站换肤! ASP.NET 2.0 中的代码隐藏和编译 ASP.NET 2.0 Language Swithcer and Theme Swicher 多语言转换和多样式主题转换 ASP.NET2.0 ObjectDataSource的使用详解(1) ASP.NET...

    asp.net2.0数据库入门经典DOC格式

    ASP.NET是一种用于创建基于Web的应用程序的编程模型。从本质上来说,运行时和.NET Framework类库集可以用于创建动态Web页。它需要在Web服务器的环境中运行,例如Microsoft Internet Information Server(Microsoft...

    Fesend CMS系统源码(.NET 2.0版本!)

    本程序使用vs2003开发,你也可以选择使用vs2008(DB_51aspx文件夹中)转换版本(依赖程序集版本没有改变) 程序初次需要安装,可以按照安装步骤尽兴安装,如果想要直接查看系统效果,将DB_51aspx文件夹中的数据库文件...

    MvcPager 1.5 for ASP.NET MVC 3 程序集dll文件 (中文)

    MvcPager分页控件是在ASP.NET MVC Web应用程序中实现分页功能的一系列扩展方法,该分页控件的最初的实现方法借鉴了网上流行的部分源代码,尤其是ScottGu的PagedList类和相关方法,经过站长不断完善和改进后推出的...

    ASP.NET4高级程序设计(第4版) 3/3

    1.2.2 ASP.NET2.0 9 1.2.3 ASP.NET3.5 10 1.2.4 ASP.NET4 12 1.2.5 Silverlight 14 1.3 总结 15 第2章 Visual Studio 16 2.1 Visual Studio 16 2.1.1 网站和Web项目 17 2.1.2 创建无项目文件的...

    Report.NET:用于生成精确PDF文档的类库

    尽管通常可以在更高版本的.NET中正常使用从SourceForge下载的原始.NET 2.0 DLL,而在某些情况下,在更高版本的.NET中并排加载.NET 2.0框架程序集时,会出现竞争情况在执行Report.NET代码时,这将导致未处理的异常。...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    1.2.2 ASP.NET2.0 1.2.3 ASP.NET3.5 1.2.4 ASP.NET4 1.2.5 Silverlight 1.3 总结 第2章 Visual Studio 2.1 Visual Studio 2.1.1 网站和Web项目 2.1.2 创建无项目文件的网站 2.1.3 设计网页 2.2...

    网站快车.NET网站管理系统(WEBOS) V2.0

    完全基于 asp.net 2.0 ajax 开发的新一代网站管理系统, 完全WEB2.0的CMS系统, 全球第一款采用web os方式管理网站的创时代性CMS系统. 本系统集开发者八年CMS系统开发经验之大成, 界面简洁实用,功能强大,安全稳定,运行...

    MvcPager 1.5 for ASP.NET MVC 2 程序集dll文件 (中文)

    MvcPager分页控件是在ASP.NET MVC Web应用程序中实现分页功能的一系列扩展方法,该分页控件的最初的实现方法借鉴了网上流行的部分源代码,尤其是ScottGu的PagedList类和相关方法,经过站长不断完善和改进后推出的...

    网站快车.NET网站管理系统(WEBOS)

    完全基于 asp.net 2.0 ajax 开发的新一代网站管理系统, 完全WEB2.0的CMS系统, 全球第一款采用web os方式管理网站的创时代性CMS系统. 本系统集开发者八年CMS系统开发经验之大成, 界面简洁实用,功能强大,安全稳定,...

    网站快车.NET网站管理系统

    完全基于 asp.net 2.0 ajax 开发的新一代网站管理系统, 完全WEB2.0的CMS系统, 全球第一款采用web os方式管理网站的创时代性CMS系统. 本系统集开发者八年CMS系统开发经验之大成, 界面简洁实用,功能强大,安全稳定,...

    ASP.NET3.5从入门到精通

    4.1.5 ASP.NET 网站和ASP.NET 应用程序的区别 4.2 代码隐藏页模型的解释过程 4.3 代码隐藏页模型的事件驱动处理 4.4 ASP.NET 客户端状态 4.4.1 视图状态 4.4.2 控件状态 4.4.3 隐藏域 4.4.4 Cookie 4.4.5 客户端状态...

    ASP.NET 3.5 开发大全

    4.1.5 ASP.NET网站和ASP.NET应用程序的区别 4.2 代码隐藏页模型的解释过程 4.3 代码隐藏页模型的事件驱动处理 4.4 ASP.NET客户端状态 4.4.1 视图状态 4.4.2 控件状态 4.4.3 隐藏域 4.4.4 Cookie 4.4.5 客户端状态...

    ASP.NET图书馆B/S系统

    应用ASP.NET2.0新增的成员资格管理和角色管理提供程序和相关的登录控件CreateUserWizardStep、Login等控件以及相应生成的数据库。通过自定义CreateUserWizardStep注册控件以及编写相关代码,将新注册的用户信息分别...

    ASP.NET 3.5 开发大全word课件

    4.1.5 ASP.NET网站和ASP.NET应用程序的区别 4.2 代码隐藏页模型的解释过程 4.3 代码隐藏页模型的事件驱动处理 4.4 ASP.NET客户端状态 4.4.1 视图状态 4.4.2 控件状态 4.4.3 隐藏域 4.4.4 Cookie 4.4.5 客户端状态...

    ASP.NET 3.5 开发大全11-15

    4.1.5 ASP.NET网站和ASP.NET应用程序的区别 4.2 代码隐藏页模型的解释过程 4.3 代码隐藏页模型的事件驱动处理 4.4 ASP.NET客户端状态 4.4.1 视图状态 4.4.2 控件状态 4.4.3 隐藏域 4.4.4 Cookie 4.4.5 客户端状态...

    ASP.NET 3.5 开发大全1-5

    4.1.5 ASP.NET网站和ASP.NET应用程序的区别 4.2 代码隐藏页模型的解释过程 4.3 代码隐藏页模型的事件驱动处理 4.4 ASP.NET客户端状态 4.4.1 视图状态 4.4.2 控件状态 4.4.3 隐藏域 4.4.4 Cookie 4.4.5 客户端状态...

    立即下载使用网站快车.NET网站管理系统(WEBOS)

    完全基于 asp.net 2.0 ajax 开发的新一代网站管理系统, 完全WEB2.0的CMS系统, 全球第一款采用web os方式管理网站的创时代性CMS系统. 本系统集开发者八年CMS系统开发经验之大成, 界面简洁实用,功能强大,安全稳定,...

    ActiveReports for .NET--灵活强大的.Net 报表制作控件

    其功能和灵活性与ActiveReports 2.0相同,并提供了完整的.NET环境下的代码集成。使用.NET 版的ActiveReports,你可以采用Visual Studio.NET 编辑器,用C#或Visual Basic .NET 语言编写报表代码,其中包含了ASP.NET ...

Global site tag (gtag.js) - Google Analytics