gpt4 book ai didi

.net - 列出所有可用的 .NET 程序集

转载 作者:行者123 更新时间:2023-12-04 02:16:22 30 4
gpt4 key购买 nike

什么是列出所有可用的.NET 2.0组件的最佳方式?

所需的列表的一个例子是一个微软的Visual Studio显示,当你在.NET选项卡上“添加引用...”。

我已阅读Visual Studio中使用它自己的目录配置和GAC另一个和.NET安装目录另一个。关于我如何以计算机便携方式知道此目录在哪里的任何想法(例如,另一台计算机可能在 D: 驱动器中安装了 Windows)?

从列出的信息,它必须能够Assembly.Loadxxxx()它。

注:应该做编程,而不是使用例如GACUTIL(除非它提供了一个C#API)。这一切的目的是让您了解需要得到这个信息来创建自定义动态脚本编辑器。

最佳答案

首先,GAC 中的引用程序集和程序集之间存在重要区别。要编译代码,您需要一个引用程序集。要运行代码,您需要与 .exe 或 GAC 中的程序集位于同一文件夹中的程序集副本。

通常,当您安装 .NET 应用程序时,其安装程序将复制它在 GAC 中使用的程序集。这些程序集不能用作引用程序集,您无法找到它存储在哪个文件夹中,因此您无法告诉编译器其/reference 命令行参数的正确值。好吧,您会发现,但 Microsoft 试图通过 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 中的“浏览”选项卡来添加对这些的引用。并搜索整个磁盘以自己找到它们。

关于.net - 列出所有可用的 .NET 程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/495236/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com