visual-studio-2010 - 如何从 GAC 引用程序集?

标签 visual-studio-2010 .net-4.0 reference gac strongname

我已经安装了强命名程序集 TestReflection进入 GAC(我使用 .NET 4.0 和 VS 2010)。
TestReflection的不同版本DLL 位于 .NET 4.0 ( C:\WINDOWS\Microsoft.NET\assembly\GAC_32\TestReflection\ ) 的 GAC 中,但是,该程序集未出现在 VS 2010 的“项目”->“添加引用”框中。

如何在设计时从另一个项目引用我在 GAC 中部署的程序集?

This页面说:

You cannot add references from the Global Assembly Cache (GAC), as it is strictly part of the run-time environment.



引用这个声明,我想知道如果需要的话,如何为其他消费者制作您项目的DLL共享程序集?

最佳答案

在“添加引用”对话框的 .Net 选项卡中显示的 dll 实际上并不是在 GAC 中注册的那些。它们是通过在文件系统上搜索一些路径来找到的。

Visual Studio 通过查找以下注册表项来定位要搜索的路径:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetFramework\{Version}\AssemblyFoldersEx\

那里应该已经添加了一些键,因此如果您希望自己的 dll 显示在 .Net 选项卡上,您可以将其添加到那里定义的文件夹之一。您还可以添加一个指向自定义文件夹的新注册表项,该文件夹仅包含您自己的 dll。

GAC 仅用于在部署应用程序后在运行时加载程序集,因此我认为您不应该在开发时使用它。部署应用程序时,请确保将引用中的“Copy local”设置为 false,这样 dll 就不会被复制到 bin 文件夹,然后将其安装到 GAC 中,而是从那里加载。

关于visual-studio-2010 - 如何从 GAC 引用程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5028368/

相关文章:

c# - 他们是在调整大小时阻止图片框闪烁的方法吗?

c# - .NET 4 代码契约(Contract) : do I need to include the same contracts twice?

c# - 帮助将 SQL 语句转换为 LINQ Lambda(需要有关 group by 和 sum 的帮助)

.net - 谁在使用 VS 2010 专业版?和2008一样稳定吗?

winforms - 设置我所有表单的可本地化属性

c# - 为什么当变量不为空时显示 NullReferenceException?

java - 如何将引用从一个对象移动到另一个对象?

python - 在 Python 中存储对原始类型的引用?

c++ - const int &x = 4 和 const int x = 4 之间的区别

mysql - 在 visual studio 中使用 MySQL 并在运行时更改连接