簡體   English   中英

在ASP.NET(VS 2005)和web.config中注冊程序集

[英]Register assembly in ASP.NET (VS 2005) and web.config

我正在將新版本的程序集應用於Web項目,並且發現我將不得不替換每個Web控件頂部的500個Register Assembly標簽實例。 我考慮過在web.config中注冊它,但是當我嘗試這樣做並從控件中刪除“注冊”標簽時,我收到“無法識別的標簽前綴”錯誤,並且丟失了該標簽的智能感知。 我沒有GAC的程序集,但我不認為那會是一個問題。 我在這里想念什么? 在此先感謝您的幫助。

您確定要正確構建配置文件嗎? Rick Strahl就此問題撰寫了一篇出色的文章:

http://www.west-wind.com/WebLog/posts/753705.aspx

通常,當您將自定義控件嵌入頁面時,您需要添加@Register標記,如下所示:

<%@ Page language="c#" Inherits="Westwind.WebToolkit.MessageDisplay" 
                   CodeBehind="MessageDisplay.aspx.cs"  
                   enableViewState="false"   AutoEventWireup="True" 
                   MasterPageFile="~/WestWindWebToolkit.master"
%>
<%@ Register Assembly="Westwind.Web" Namespace="Westwind.Web.Controls" TagPrefix="ww" %>  

為了使控件能夠在頁面中工作並與Intellisense一起顯示。 如果使用視覺設計器放置控件,您可能不會注意到此要求,因為設計器會自動為您添加程序集和名稱空間依賴項到頁面中。 但是,如果您像我通常所做的那樣僅在標記中工作,通常必須先在頁面頂部注冊控件,然后再回到將控件實際嵌入頁面中以獲取Intellisense的方法,這通常很煩人。

一種更簡單的應用程序全局方法是直接在web.config中聲明名稱空間和控件標簽,並將其全局應用:

<system.web>    <pages>
  <namespaces>
    <add namespace="System.IO" />
    <add namespace="System.Text" />
    <add namespace="Westwind.Utilities" />
    <add namespace="Westwind.Web.Controls" />
  </namespaces>
  <controls>
    <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add tagPrefix="ww" namespace="Westwind.Web.Controls" assembly="Westwind.Web" />
  </controls>
</pages>    <compilation debug="true">
  <assemblies>
    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
</compilation>
</system.web>

控件部分有效地提供了@Register標簽在頁面中的等效性,並且一旦您定義了標簽前綴,在頁面中就不再需要@Register標簽了。

希望能有所幫助,

吉姆

我必須安裝VS 2005 Service Pack 1並重新啟動Visual Studio。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM