列出所有可用的 .NET 2.0 程序集的最佳方法是什么?
所需列表的一个示例是当您在 .NET 选项卡中执行“添加引用...”时 MS Visual Studio 显示的列表。
我读过 Visual studio 使用它自己的目录配置,GAC 和 .NET 安装。我如何以计算机便携方式知道该目录在哪里(另一台计算机可能在 D: 驱动器中安装了 Windows)有什么想法吗?
从列出的信息来看,必须可以对其进行 Assembly.Loadxxxx() 。
注意:它应该以编程方式完成,而不是使用 gacutil(除非它提供 C# API)。所有这一切的目的是创建一个自定义动态脚本编辑器,以便您了解获取此信息的必要性。
首先,参考程序集和 GAC 中的程序集之间存在重要区别。要编译代码,您需要一个参考程序集。要运行代码,您需要与 .exe 位于同一文件夹中的程序集副本或 GAC 中的程序集。
通常,当您安装 .NET 应用程序时,其安装程序将复制它在 GAC 中使用的程序集。这些组件是not可用作参考程序集,您无法找到它存储在哪个文件夹中,因此您无法告诉编译器其 /reference 命令行参数的正确值。嗯,你可以找到答案,但微软试图通过 shell 插件让它尽可能地困难。
当您安装允许您在自己的程序中使用其程序集的 .NET 应用程序时,会发生一些不同的情况。就像.NET框架一样。它将为每个程序集制作两份副本。一个位于 GAC,另一个位于“众所周知”的位置。对于 .NET 框架,这些众所周知的位置是 c:\windows\microsoft.net\ 和 c:\program files\reference assembly。 .NET 3.0 及更高版本开始使用后一个文件夹。
Visual Studio 的“添加引用”对话框使用列出这些众所周知位置的注册表项。有几个,但最重要的是HKLM\Software\Microsoft\.NETFramework\AssemblyFolders
.
长话短说:您可以使用该注册表项生成与“添加引用”对话框生成的列表相同的列表。但它并不是 100% 可靠,您可能会错过某些产品在其他地方复制的参考程序集。您必须使用 VS 中的“浏览”选项卡来添加对这些内容的引用。并搜索整个磁盘以找到它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)