在ASP.NET2.0中有好多不知道做什麼作用的檔案及檔案夾。
1. App_global.asax.compiled
2.App_Code.compiled
3.PrecompiledApp.config
下面將介紹我採用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="首頁" %>