zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    mongodb
    python中读取文件的read、readline、readlines方法区别
    uva 129 Krypton Factor
    hdu 4734
    hdu 5182 PM2.5
    hdu 5179 beautiful number
    hdu 5178 pairs
    hdu 5176 The Experience of Love
    hdu 5175 Misaki's Kiss again
    hdu 5174 Ferries Wheel
  • 原文地址:https://www.cnblogs.com/xhety/p/3969350.html
Copyright © 2011-2022 走看看