VS2008 VS2010发布网站时如何产生固定命名的 Dll 文件
VS2008 發布網站時如何產生固定命名的 Dll 文件
dev.firnow.com??? 時間 : 2010-12-08? 作者:網絡?? 編輯:fnw 點擊:? 82 [ 評論 ]
-
-
VS2008 在發布網站時,bin 目錄里為所有 cs 生成的 dll 文件每次都是隨機命名的,像這樣子的 App_Web_g2dnx-qj.dll, App_Web_s9nor8mv.dll,這樣對更新 Live 站點很不方便,因為動態庫名變了,涉及到每一個 aspx 文件每次都重新更改了對庫的引用聲明:
顯示代碼打印
1 <%@ page language="C#" autoeventwireup="true" inherits="_Default, App_Web_s9nor8mv" %>
即使有一個 cs 的小改動,由于生成的動態庫名稱不一樣,造成所有的 aspx 文件都得重傳一遍。如果能固定動態庫的文件名,更新網站時就省事多了,只改了 cs 的話,重新生成 dll 文件,只需要替換這一個 dll 文件就 OK 啦。我們可以找到幾種做法:
1. 在“發布網站”的選項中,勾選“使用固定命名和單頁程序集”,每個頁面對應的一個 dll,并且這個 dll 文件名是固定的(名字雖然看起來很隨便),只要 aspx 文件名沒變。這會生成大量的 dll 文件,實際應用中還沒看到可取之處。
2. 把所有的 cs 文件放到 App_Code 目錄中,這樣所有的 cs 每次都生成到 App_Code.dll 動態庫中。這時候的 aspx 文件第一行指令在新建后要更改為:
顯示代碼打印
1 <%@ Page Language="C#" AutoEventWireup="true"? Inherits="_Default" %>
?
或者:
顯示代碼打印
1 <%@ 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 文件指令就是:
顯示代碼打印
1 <%@ Page Language="C#" AutoEventWireup="true"? Inherits="_Default" %>
或者:
顯示代碼打印
1 <%@ 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。
簡單操作如下:
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 文件的頭部是:
顯示代碼打印
1 <%@ page language="C#" autoeventwireup="true" inherits="Default, WebSite1_deploy" %>
只要 WebSite1_deploy.dll 文件名是固定的,aspx 的聲明部分也總是不變的,所以每次只是對 cs 文件的修改補,只需換個 WebSite1_deploy.dll 文件就行啦。
相比于第二、三種方法,只需一次設置,用不著每建一個 aspx 文件對代碼文件進行搬動,還得改改 aspx 文件的聲明部分,而且對于 Web Site 也能構建出 DEBUG 的版本出來,所以這應該是終極的。
======================================================
在用VS2008發布網站項目時,默認生成bin目錄下的.dll文件名是隨機命名的;?
如果要固定生成文件名如何固定呢?
有以下兩種方案:
一、每個頁面的程序集分別生成對應的dll; 方法:在“發布網站”的選項中,勾選“使用固定命名和單頁程序集”
二、整個站點的程序集都生成為一個文件;方法:需下載MS提供的插件,經過簡單的設置可生成自定義的文件名(.dll):
Web Deployment Projects with Visual Studio 2008下載地址:
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],彈出屬性對話框后.設置好指定名稱和存放目錄添加后,可以看到當前解決方案中多了一項,有很多其它屬性,就自己去設置了;
3.在剛添加的方案中點右鍵->[生成],就會生成相應文件和目錄了
===========================================================
VS2010
VS2010可以直接創建WebApplication項目,這樣發布就是一個DLL了.
VS2010可以直接創建WebApplication項目,這樣發布就是一個DLL了.
?VS2010可以直接創建WebApplication項目,這樣發布就是一個DLL
如果是WebApplication的話可以右鍵Web項目 》 發布
如果是Website地方話用微軟的發布插件Web Development Tool
下載地址:
http://www.microsoft.com/downloads/details.aspx?FamilyID=89f2c4f5-5d3a-49b6-bcad-f776c6edfa63&displaylang=en
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/hiyavip/archive/2010/05/03/5552626.aspx
轉載于:https://www.cnblogs.com/suzh/archive/2011/04/26/2029564.html
總結
以上是生活随笔為你收集整理的VS2008 VS2010发布网站时如何产生固定命名的 Dll 文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET - Page 的生命周期
- 下一篇: 物流多少钱一公斤啊?