• VS2005,VS2008,VS2010将ASP.NET网站编译成一个DLL文件


     
    分类: C#/ASP.Net

    VS在发布网站时,bin目录里为所有cs生成的dll文件每次都是随机命名的,如:App_Web_xxxxxxxx.dll(xxxxxxx是 8个小写的字母和数字组成的字符串,随机的),这样对更新 Live 站点很不方便,因为动态库名变了,涉及到每一个 aspx 文件每次都重新更改了对库的引用声明:
            <%@ page language="C#" autoeventwireup="true" inherits="_Default, App_Web_s9nor8mv" %>
    即使有一个 cs 的小改动,由于生成的动态库名称不一样,造成所有的aspx文件都得重传一遍。如果能固定动态库的文件名,更新网站时就省事多了,只改了 cs 的话,重新生成 dll 文件,只需要替换这一个 dll 文件就可以了。

    ===========================================================

    VS2005环境下:
    Web Deployment Projects with Visual Studio 2005下载地址:
            下载地址一:(大小为:905K)
            http://download.microsoft.com/download/c/c/b/ccb4877f-55f7-4478-8f16-e41886607a0e/WebDeploymentSetup.msi
            下载地址二:(大小为:919K)
            http://download.microsoft.com/download/9/4/9/9496adc4-574e-4043-bb70-bc841e27f13c/WebDeploymentSetup.msi
            当你下载地址一给的链接时,编译后的文件,如果aspx中含有中文字符,页面将很可能显示为乱码,所以,请下载者注意版本问题。
    简单操作如下:
    1.下载后直接安装,安装完后打开VS2005;
    2. 在[生成]->[发布网站]下面会多出一项[Add Web Deployment Project],也可在要发布的网站项目上点右键.直接选取 [Add Web Deployment Project],弹出属性对话框后,设置好指定名称和存放目录添加后,可以看到当前解决方案中多了一项,有很多其它属性,可以自己去设置;
    3.在刚添加的方案中点右键->[生成],就会生成相应文件和目录。

    ===========================================================

    VS2008环境下:
    方法1: 在“发布网站”的选项中,勾选“使用固定命名和单页程序集”,每个页面对应的一个 dll,并且这个 dll 文件名是固定的(名字虽然看起来很随便),只要 aspx 文件名没变。这会生成大量的 dll 文件,实际应用中还没看到可取之处。

    方法2.:把所有的 cs 文件放到 App_Code 目录中,这样所有的 cs 每次都生成到 App_Code.dll 动态库中。这时候的 aspx 文件第一行指令在新建后要更改为:
            <%@ Page Language="C#" AutoEventWireup="true"  Inherits="_Default" %>
            或者:
            <%@ Page Language="C#" AutoEventWireup="true"  Inherits="_Default, App_Code" %>
    这样发布的时候,对 cs 的小改动只需替换一个 App_Code.dll 文件即可。在不使用 CodeFile 属性时,VS 没理由要修改你的 aspx 文件头。

    方法3:其实与前一种十分类似,如果觉得把 aspx 对应的 cs  文件放到 App_Code 目录中有点唐突,那么为当前解决方案新加一个 Class Library 项目,例如 ClassLibrary1,把 aspx 的 cs 文件都放到这个工程中吧,相应的 aspx 文件指令就是:
            <%@ Page Language="C#" AutoEventWireup="true"  Inherits="_Default" %>
            或者:
            <%@ Page Language="C#" AutoEventWireup="true"  Inherits="_Default, ClassLibrary1" %>
    小改动替换 ClassLibrary1.dll 即可,同理在不使用 CodeFile 属性时,VS 没理由要修改你的 aspx 文件头。只有 cs 文件也要放服务器上,由 Asp.Net 来编译程序时,CodeFile 指令才是有其作为的。

    方法4:Web Deployment Projects with Visual Studio 2008下载地址:
            http://download.microsoft.com/download/0/5/b/05b4424b-5b9b-4961-8ec6-91e9f1741b2d/WebDeploymentSetup.msi (大小为:686K)
            http://download.microsoft.com/download/0/5/b/05b4424b-5b9b-4961-8ec6-91e9f1741b2d/WebDeploymentSetup.msi
    简单操作如下:
    1) 下载后直接安装,安装完后打开VS2008;
    2) 在[生成]->[发布网站]下面会多出一项[Add Web Deployment Project], 也可在要发布的网站项目上点右键.直接选取[Add Web Deployment Project],弹出属性对话框后. 设置好指定名称(如 WebSite1_deploy)和存放目录(c: arget), 添加后, 可以看到当前解决方案中多了一项( WebSite1_deploy), WebSite1_deploy 有很多其它属性可以设置,其中有一重要的默认选项:
            Merge all outputs to a single assembly
            Assembly name: 是 WebSite1_deploy.
    3) 在刚添加的方案中点右键->[生成], 或者是对 WebSite1_deploy 进行 Build 都会在前面指定的目录(c: arget) 中生成可发布的文件的目录了。进到 c: arget 目录中,翻一下你就会发现你的 Web 项目中所有的 cs 文件,包括 aspx 关联的和 App_Code 中的 css 文件都编译到 WebSite1_deploy.dll 文件中去了。aspx 文件的头部是:
            <%@ page language="C#" autoeventwireup="true" inherits="Default, WebSite1_deploy" %>
    只要 WebSite1_deploy.dll 文件名是固定的,aspx 的声明部分也总是不变的,所以每次只是对 cs 文件的修改补,只需换个 WebSite1_deploy.dll 文件就可以了。

    相比于第二、三种方法,只需一次设置,用不着每建一个 aspx 文件对代码文件进行搬动,还得改改 aspx 文件的声明部分,而且对于 Web Site 也能构建出 DEBUG 的版本出来,所以这应该是终极的。

    ===========================================================

    VS2010环境下:

    1.Visual Studio® 2010 Web Deployment Projects下载地址:
            http://www.microsoft.com/downloads/details.aspx?FamilyID=89f2c4f5-5d3a-49b6-bcad-f776c6edfa63&displaylang=en

    2 安装Visual Studio® 2010 Web Deployment Projects插件,然后再网站项目上点击右键,可以看到多了一项Add Web Deployment Project

    3 点击Add Web Deployment Project,弹出如下对话框

    4 名称和路径可以修改,一般默认就好,点击OK,在解决方案中会生成一个部署项目

    5 在部署项目点击右键,点击“生成”

    6 生成成功后,在部署项目的目录中会产生一个Release目录,Release目录中就是项目发布的所有文件,在bin目录中可以看到并没有之前那样有很 多不规则命名的dll,生成的dll的名称和前面添加部署项目时所填写的名称相同,为EduAppWeb_deploy

    本文转自:http://www.cnblogs.com/suzh/archive/2011/04/26/2029564.html

  • 相关阅读:
    Mysql 存储过程小例子
    Notepad++ 运行脚本快捷键设置
    Review PHP设计模式之——观测模式
    Review PHP设计模式之——注册模式
    2018年5月6日GDCPC(广东赛区)总结
    套题总结
    2017年广东省ACM省赛(GDCPC-2017)总结
    在线购物系统 实验五设计类
    在线购物系统 实验一问题描述、词汇表
    ACM ICPC 2011-2012 Northeastern European Regional Contest(NEERC)G GCD Guessing Game
  • 原文地址:https://www.cnblogs.com/xhety/p/3969350.html
Copyright © 2020-2023  润新知