【发布时间】:2009-12-17 01:54:37
【问题描述】:
我在一个并行构建工具上工作,它可以构建(以及许多其他东西)各种类型的 Windows 程序。我们的工具让我们的用户生活更轻松的一部分是 EXE 和 DLL 文件的自动依赖扫描。这意味着如果用户说他们想运行“bob.exe”,当“bob.exe”被分发到构建网络中的其他节点时,他们不必担心依赖问题。这是因为我们扫描“bob.exe”找出它需要什么 DLL 并将它们一起发送。
总的来说,这很好用,除非 EXE 以编程方式加载 DLL。然后必须将依赖项硬编码到用户的 make 文件中。我们最近开始遇到的一个问题是如何处理 C# DLL/EXE。这些似乎包含不属于 PE 格式的 DLL 引用。我假设引用位于某种 C# 容器中,并且 C# 运行时只是在 C# 运行时开始运行时以编程方式加载它们。
谁能告诉我在二进制级别扫描这些引用的最佳方法是什么?我的构建工具是多平台的,因此我的 PE 扫描器目前是用 Java 编写的。因此,我不能依赖任何 .NET 库。我的 PE 扫描仪已经可以解析出 PE 文件中的所有部分,我习惯于解析出包含 C++ 应用程序的并排汇编信息的部分。对于 C# 应用程序,我只需要一些指示...
【问题讨论】:
标签: c# dll assemblies