生成自定义服务器控件示例
更新:2007 年 11 月
本主题描述如何将自定义控件示例编译为程序集并在 ASP.NET 网页中使用这些控件。还描述如何使用 ASP.NET 网站的 App_Code 文件夹在不编译控件代码的情况下测试这些代码。
创建控件程序集
创建自定义控件并将其编译为程序集
为自定义控件和相关类的源文件创建一个文件夹。
使用相应的语言扩展为要编译的每个示例创建一个文本文件。
例如,为 Web 控件呈现示例中的 MailLink 控件的 C# 代码创建一个名为 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\版本号 的 Windows 安装文件夹中。
每次在源代码文件夹中添加了新的源文件或更改了现有源文件时,请重新运行步骤 4 中的编译命令。
创建 ASP.NET 网站
创建 ASP.NET 网站
使用 Internet 信息服务 (IIS) 或其他工具创建 ASP.NET 网站。
有关创建和配置 IIS 虚拟目录的信息,请参见如何:在 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 文件夹中。如果将该控件同时添加到这两个文件夹中,则页分析器将无法解析对页中的控件的引用,会生成错误。
将 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 文件的 compilation 节中添加对 System.Design 程序集的引用。此引用需要 System.Design 程序集的完全限定程序集名称。通过运行 Windows 软件开发工具包 (SDK) 附带的全局程序集缓存工具 (Gacutil.exe),使用以下语法,可以获取完全限定名所需的信息:
gacutil /l System.Design
说明: |
---|
若要从命令行中运行 .全局程序集缓存工具 (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>
说明: |
---|
如果在使用集成开发环境,则设计器可能会提供更简单的技术,用于将程序集引用添加到 Web.config 文件中。例如,在 Visual Studio 2005 中,如果右击“解决方案资源管理器”中的网站名,再单击快捷菜单中的“添加引用”,就可以使用一个对话框选择要添加的程序集。选择程序集时,设计器会将相关项自动添加到 Web.config 文件中。 |