生成自定义服务器控件示例

更新:2007 年 11 月

本主题描述如何将自定义控件示例编译为程序集并在 ASP.NET 网页中使用这些控件。还描述如何使用 ASP.NET 网站的 App_Code 文件夹在不编译控件代码的情况下测试这些代码。

创建控件程序集

创建自定义控件并将其编译为程序集

  1. 为自定义控件和相关类的源文件创建一个文件夹。

  2. 使用相应的语言扩展为要编译的每个示例创建一个文本文件。

    例如,为 Web 控件呈现示例中的 MailLink 控件的 C# 代码创建一个名为 MailLink.cs 的文件。

  3. 将每个示例的源代码复制并粘贴到对应的文本文件中并保存该文件。

  4. 在源代码文件夹中运行以下命令,以将控件和相关的类编译为程序集。

    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 选项则列出链接到您的程序集的那些程序集。

    az5kdaz0.alert_note(zh-cn,VS.90).gif说明:

    如果您不能执行编译器命令,则在运行该命令之前,必须将 .NET Framework 安装路径添加到 Windows PATH 变量中。在 Windows 中,右击“我的电脑”,单击“属性”,单击“高级”选项卡,然后单击“环境变量”按钮。在“系统变量”列表中,双击 Path 变量。在“变量值”文本框中,将一个分号 (;) 添加到文本框中的现有值的末尾,然后键入 .NET Framework 的安装路径。.NET Framework 通常安装在位于 \Microsoft.NET\Framework\版本号 的 Windows 安装文件夹中。

  5. 每次在源代码文件夹中添加了新的源文件或更改了现有源文件时,请重新运行步骤 4 中的编译命令。

创建 ASP.NET 网站

创建 ASP.NET 网站

  1. 使用 Internet 信息服务 (IIS) 或其他工具创建 ASP.NET 网站。

  2. 有关创建和配置 IIS 虚拟目录的信息,请参见如何:在 IIS 5.0 和 6.0 中创建和配置虚拟目录

    az5kdaz0.alert_note(zh-cn,VS.90).gif说明:

    如果要使用 IIS,请在安装 .NET Framework 之前先安装 IIS。

  3. 在网站的根文件夹下创建一个 Bin 文件夹。

  4. 将您在前面步骤中创建的程序集复制到网站的 Bin 文件夹中。

    az5kdaz0.alert_note(zh-cn,VS.90).gif说明:

    如果重新编译了控件程序集(前一节中的最后一步),则必须将这个新的程序集重新复制到网站的 Bin 文件夹中。

  5. 在网站的根文件夹中创建一个名为 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>
    
  6. 在网站的根文件夹中,为每个要测试的示例添加一个扩展名为 .aspx 的文本文件。

    例如,为 Web 控件呈现示例中提供的 MailLink 控件的测试页创建一个名为 MailLinkTest.aspx 的文件。

  7. 将每个示例测试页的源代码复制并粘贴到对应的 .aspx 文件中并保存该文件。

  8. 在 Web 浏览器中请求 .aspx 页。

    例如,如果您的网站名为 ServerControls,且其中包括一个名为 MailLinkTest.aspx 的页面,则在浏览器的地址栏中键入以下 URL:

    https://localhost/ServerControls/MailLinkTest.aspx
    

使用 App_Code 文件夹测试控件

可以使用 ASP.NET 2.0 的动态编译功能测试控件,而无需将这些控件手动编译为程序集。

将控件置于 App_Code 文件夹中

  1. 在网站的根文件夹下创建一个 App_Code 文件夹。

  2. 将控件和相关类的源文件复制到该 App_Code 文件夹中。

  3. 如果先前已将控件的程序集添加到 Bin 文件夹中,请将它删除。

    az5kdaz0.alert_note(zh-cn,VS.90).gif说明:

    可以将控件预编译为程序集并将该程序集置于 Bin 文件夹中,也可以将该控件的源文件置于 App_Code 文件夹中。如果将该控件同时添加到这两个文件夹中,则页分析器将无法解析对页中的控件的引用,会生成错误。

  4. 将 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

  5. 在 Web 浏览器中请求 .aspx 页。

如果将 Web 控件集合属性示例中的 QuickContacts 和 ContactCollectionEditor 类的源文件置于 App_Code 文件夹中,则还必须在 Web.config 文件的 compilation 节中添加对 System.Design 程序集的引用。此引用需要 System.Design 程序集的完全限定程序集名称。通过运行 Windows 软件开发工具包 (SDK) 附带的全局程序集缓存工具 (Gacutil.exe),使用以下语法,可以获取完全限定名所需的信息:

gacutil /l System.Design
az5kdaz0.alert_note(zh-cn,VS.90).gif说明:

若要从命令行中运行 .全局程序集缓存工具 (Gacutil.exe),则您的计算机的 Windows 环境 PATH 变量必须包括 .NET Framework 的安装路径。在 Windows 中,右击“我的电脑”,单击“属性”,单击“高级”选项卡,然后单击“环境变量”按钮。在“系统变量”列表中,双击 Path 变量。在“变量值”文本框中,将一个分号 (;) 添加到文本框中的现有值的末尾,然后键入 .NET Framework 的安装路径。.NET Framework 通常安装在位于 \Microsoft.NET\Framework\版本号 的 Windows 安装文件夹中。

添加到 Web.config 文件的 compilation 节中的标记与以下示例中突出显示的部分类似。但是,必须将 Version 和 PublicKeyToken 属性的值替换为 Gacutil.exe 工具返回的值。

<compilation >
  <assemblies>    <add assembly="System.Design, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />    </assemblies>
</compilation>
az5kdaz0.alert_note(zh-cn,VS.90).gif说明:

如果在使用集成开发环境,则设计器可能会提供更简单的技术,用于将程序集引用添加到 Web.config 文件中。例如,在 Visual Studio 2005 中,如果右击“解决方案资源管理器”中的网站名,再单击快捷菜单中的“添加引用”,就可以使用一个对话框选择要添加的程序集。选择程序集时,设计器会将相关项自动添加到 Web.config 文件中。

请参见

任务

演练:开发和使用自定义服务器控件

其他资源

开发自定义 ASP.NET 服务器控件