如何将VB.NET类添加到GAC,并在Code-Behind中使用它

时间:2009-09-15 13:17:19

标签: asp.net vb.net visual-studio-2005 gac global-assembly-cache

我创建了一个VB.NET类,并创建了一个强密钥,并使用GacUtil将其添加到GAC。那部分进展顺利。程序集安装在GAC中,似乎已正确安装/配置。

仅供参考,程序集是一个名为Tester的类,它公开一个名为HelloWorld的公共静态方法,该方法返回一个字符串“Hello World”。

下一步是使用Visual Studio 2005,Windows XP SP3创建测试Web应用程序(VB.NET和ASP.NET 2.0)。我创建了测试Web应用程序,并将以下内容添加到web.config文件的配置部分。

<assemblies>
<add assembly="BenGACTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3e5b6cecb56999ca" />
</assemblies>

然后我将一些内联代码添加到我的aspx页面中,如下所示:

<div><%=BenGACTest.Tester.HelloWorld()%></div>

当我在网络浏览器中运行页面时,确实一切都按预期工作。页面输出“Hello World”,一切似乎都很好。

但是,我不知道如何在code-behind页面中使用此代码。我尝试导入程序集,就像“导入系统”一样,它不会出现在IntelliSense中。

此外,当我尝试将程序集添加为项目的引用时,在已安装的程序集列表中找不到该程序集。我相信这是因为列表是从注册表中提取的,而不是从已安装程序集的动态列表中提取的。

我的目标是通过web.config文件添加程序集,而不是将其添加为项目引用,并在代码隐藏页面中使用程序集。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

您可以引用本地版本以在Visual Studio中使用DLL,.NET将在运行应用程序时支持GAC版本。此外,我不相信你必须在GAC中提供DLL时发送它,但你必须通过菜单Project-&gt; Add Reference来引用它。

编辑:此forumpost可能会有所帮助:http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/63bf8d34-42ad-4f3c-b0c9-cf7c33d77918