.netcore 程序中获取所有引用的dll,所括未加载的程序集
时间: 2024-05-14 13:18:24 浏览: 13
可以通过反射获取程序集依赖的所有程序集,包括未加载的程序集。
首先,需要获取当前程序集的 Assembly 对象,可以使用以下代码:
```csharp
Assembly assembly = Assembly.GetEntryAssembly();
```
然后,可以通过 Assembly 对象的 GetReferencedAssemblies() 方法获取当前程序集引用的所有程序集:
```csharp
Assembly[] referencedAssemblies = assembly.GetReferencedAssemblies();
```
此时,referencedAssemblies 数组中包含了当前程序集引用的所有程序集的 AssemblyName 对象。
如果需要获取所有引用的程序集(包括未加载的程序集),可以使用 Assembly.Load() 方法加载每个程序集并获取其 Assembly 对象:
```csharp
List<Assembly> allAssemblies = new List<Assembly>();
foreach (AssemblyName assemblyName in referencedAssemblies)
{
Assembly assembly = Assembly.Load(assemblyName);
allAssemblies.Add(assembly);
}
```
此时,allAssemblies 列表中包含了所有引用的程序集的 Assembly 对象,包括未加载的程序集。需要注意的是,如果未加载的程序集有依赖关系,也需要递归获取其依赖的程序集。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)