【问题标题】:How to add VB.NET Class to GAC, and use it in Code-Behind如何将 VB.NET 类添加到 GAC,并在代码隐藏中使用它
【发布时间】:2009-09-15 13:17:18
【问题描述】:

我创建了一个 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 文件添加程序集,而不是将其添加为项目引用,并在代码隐藏页面中使用该程序集。

有什么想法吗?

【问题讨论】:

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


【解决方案1】:

您可以只引用本地版本以在 Visual Studio 中使用 DLL,.NET 在运行应用程序时将偏爱 GAC 版本。此外,我不认为您必须在 GAC 中提供 DLL 时发送它,但您必须通过菜单 Project->Add Reference 来引用它。

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

【讨论】:

  • 我想避免手动添加参考。特别是因为通过 web.config 文件添加程序集并通过内联 vb 在 aspx 页面中使用代码工作正常。如何使用内联代码,但不能在代码隐藏中使用?
  • 应用程序必须知道需要引用程序集,因此只需引用项目即可。您不需要重新分发 DLL 或其他东西,那么有什么大不了的?
猜你喜欢
  • 2011-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多