Любые инструменты для обнаружения всех.NET DLL, на которые ссылаются
Я использую инструменты Antlr следующим образом (на Mono)
dmcs /r:Antlr3.Runtime.dll /r:StringTemplate.dll *.cs /out:Main.exe
Я ссылаюсь на две библиотеки DLL, но есть другой файл DLL (antlr.runtime.dll), на который ссылаются за сценой. Я получил это, когда у меня есть ошибка, просто копирование двух DLL и компиляции.
Существуют ли какие-либо инструменты.NET для обнаружения ссылок на библиотеки DLL? Например, если я запускаю 'DETECT Antlr3.Runtime.dll', я получаю 'antlr.runtime.dll'.
3 ответа
Вы можете использовать Reflector или написать один, используя Mono.Cecil ( NDepend использовать это)
Пример использования Mono.Cecil
В новом проекте ссылка Mono.Cecil
using System;
using Mono.Cecil;
namespace ReferenceDetector
{
class Program
{
static void Main(string[] args)
{
var assemblyPath = args[0];
var assemblyDefinition = AssemblyFactory.GetAssembly(assemblyPath);
Console.WriteLine(assemblyDefinition.Name.FullName);
foreach (AssemblyNameReference reference in assemblyDefinition.MainModule.AssemblyReferences)
{
Console.WriteLine("\t" + reference.FullName);
}
}
}
}
Дайте NDepend. Он имеет граф зависимостей / функцию матрицы зависимостей, которая позволяет вам исследовать зависимости между DLL.
Вы можете использовать Reflector. (Рекурсивно разверните узел References)