建置自訂伺服器控制項範例
更新:2007 年 11 月
這個主題會描述如何將自訂控制項範例編譯為組件 (Assembly),以及如何在 ASP.NET Web 網頁中使用控制項。也會描述如何使用 ASP.NET 網站的 App_Code 資料夾,在不進行編譯的情況下測試控制項程式碼。
建立控制項組件
若要建立自訂控制項並編譯為組件
為自訂控制項和關聯類別的原始程式檔建立資料夾。
對您要編譯的每個範例,以適當的語言副檔名建立文字檔。
例如,為 Web 控制項呈現範例中以 C# 撰寫的 MailLink 控制項,建立名為 MailLink.cs 的檔案。
複製每個範例的原始程式碼並貼到對應的文字檔,然後儲存檔案。
從原始程式碼資料夾執行下列命令,將控制項和相關的類別編譯為組件。
csc /t:library /out:Samples.AspNet.CS.Controls.dll /r:System.dll /r:System.Web.dll /r:System.Design.dll *.cs
vbc /t:library /out:Samples.AspNet.VB.Controls.dll /r:System.dll /r:System.Web.dll /r:System.Design.dll *.vb
/t:library 編譯器選項會要求編譯器建立程式庫 (而不是可執行組件)。/out 選項提供組件的名稱,而 /r 選項會列出連結至您組件的各組件。
注意事項: 如果無法執行此編譯器命令,您必須在執行命令之前,將 .NET Framework 安裝路徑加入至 Windows PATH 變數。在 Windows 中,以滑鼠右鍵按一下 [我的電腦],然後依序按一下 [內容]、[進階] 索引標籤和 [環境變數] 按鈕。在 [系統變數] 清單中,按兩下 Path 變數。在 [變數值] 文字方塊中,將分號 (;) 加在文字方塊中現有值的結尾,然後輸入 .NET Framework 安裝的路徑。.NET Framework 通常是安裝在 \Microsoft.NET\Framework\versionNumber 的 Windows 安裝資料夾中。
每當您將新的原始程式檔加入至原始程式碼資料夾或變更現有的原始程式檔時,請重新執行步驟 4 的編譯命令。
建立 ASP.NET 網站
若要建立 ASP.NET 網站
使用網際網路資訊服務 (Internet Information Services,IIS) 或其他工具建立 ASP.NET 網站。
如需建立和設定 IIS 虛擬目錄的詳細資訊,請參閱 HOW TO:在 IIS 5.0 和 6.0 中建立和設定虛擬目錄。
注意事項: 如果想要使用 IIS,請在安裝 .NET Framework 之前先安裝 IIS。
在網站的根資料夾下建立 Bin 資料夾。
將之前程序中所建立的組件,複製到網站的 Bin 資料夾。
注意事項: 如果重新編譯控制項組件 (先前章節中的最後一個步驟),您必須將新的組件重新複製到至網站的 Bin 資料夾。
在網站的根資料夾中建立名為 Web.config 的文字檔、將下列 XML 加入至 Web.config 檔案,然後儲存檔案。
<?xml version="1.0"?> <configuration> <system.web> <compilation debug="true"/> <pages> <controls> <add tagPrefix="aspSample" namespace="Samples.AspNet.CS.Controls" assembly="Samples.AspNet.CS.Controls" > </add> </controls> </pages> </system.web> </configuration>
<?xml version="1.0"?> <configuration> <system.web> <compilation debug="true"/> <pages> <controls> <add tagPrefix="aspSample" namespace="Samples.AspNet.VB.Controls" assembly="Samples.AspNet.VB.Controls" > </add> </controls> </pages> </system.web> </configuration>
對於每個要測試的範例,在網站的根資料夾加入副檔名為 .aspx 的文字檔。
例如,針對在 Web 控制項呈現範例中提供的 MailLink 控制項測試頁,建立名為 MailLinkTest.aspx 的檔案。
複製每個範例測試頁的原始程式碼,並貼到對應的 .aspx 檔案,然後儲存檔案。
在 Web 瀏覽器中要求這些 .aspx 網頁。
例如,如果網站的名稱為 ServerControls 且其中包含名為 MailLinkTest.aspx 的網頁,請在瀏覽器的位址列中輸入下列 URL:
https://localhost/ServerControls/MailLinkTest.aspx
使用 App_Code 資料夾測試控制項
您可以使用 ASP.NET 2.0 的動態編譯功能測試控制項,而不需要以手動方式將這些控制項編譯為組件。
若要將控制項放置在 App_Code 資料夾中
在網站的根資料夾下建立 App_Code 資料夾。
將控制項和相關類別的原始程式檔複製到 App_Code 資料夾。
如果先前已將控制項的組件加入至 Bin 資料夾,請將之移除。
注意事項: 您可以將控制項先行編譯為組件然後將組件放置在 Bin 資料夾中,或將控制項的原始程式檔放置在 App_Code 資料夾中。如果在這兩個資料夾中都加入了該控制項,網頁剖析器 (Parser) 將無法解析網頁中的控制項參考,因此產生錯誤。
將 Web.config 檔案中 controls 區段下的項目變更為下列以粗體顯示的項目,將控制項的命名空間對應至標記前置詞:
<controls> <add tagPrefix="aspSample" namespace="Samples.AspNet.CS.Controls">..</add> </controls>
<controls> <add tagPrefix="aspSample" namespace="Samples.AspNet.VB.Controls">..</add> </controls>
如需詳細資訊,請參閱 @ Register。
在 Web 瀏覽器中要求這些 .aspx 網頁。
如果將取自 Web 控制項集合屬性範例之 QuickContacts 和 ContactCollectionEditor 類別的原始程式檔放置在 App_Code 資料夾中,您也必須在 Web.config 檔案中,將 System.Design 組件的參考加入至 compilation 區段。這個參考需要 System.Design 組件的完整組件名稱。執行 Windows Software Development Kit (SDK) 隨附的全域組件快取工具 (Gacutil.exe),並使用下列語法,即可取得完整名稱所需的資訊。
gacutil /l System.Design
注意事項: |
---|
若要從命令行執行全域組件快取工具 (Gacutil.exe),電腦的 Windows 環境 PATH 變數必須包括 .NET Framework 安裝的路徑。在 Windows 中,以滑鼠右鍵按一下 [我的電腦],然後依序按一下 [內容]、[進階] 索引標籤和 [環境變數] 按鈕。在 [系統變數] 清單中,按兩下 Path 變數。在 [變數值] 文字方塊中,將分號 (;) 加在文字方塊中現有值的結尾,然後輸入 .NET Framework 安裝的路徑。.NET Framework 通常是安裝在 \Microsoft.NET\Framework\versionNumber 的 Windows 安裝資料夾中。 |
您加入至 Web.config 檔案之 compilation 區段的標記,類似於下列範例中以粗體顯示的區段。但是,您必須使用 Gacutil.exe 工具傳回的值,取代 Version 和 PublicKeyToken 屬性的值。
<compilation >
<assemblies> <add assembly="System.Design, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </assemblies>
</compilation>
注意事項: |
---|
如果您正在使用整合式開發環境,設計工具可能提供較簡單的技術,將組件參考加入至 Web.config 檔案。例如在 Visual Studio 2005 中,如果以滑鼠右鍵按一下 [方案總管] 中的網站名稱,然後按一下快速鍵功能中的 [加入參考],則可以使用對話方塊,讓您選取希望加入的組件。選取組件時,設計工具會自動將相關項目加入至 Web.config 檔案。 |