Любые инструменты для обнаружения всех .NET DLL, на которые ссылаются - PullRequest
3 голосов
/ 12 октября 2010

Я использую инструменты 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 ]

3 голосов
/ 12 октября 2010

Дайте NDepend идти.Он имеет граф зависимостей / функцию матрицы зависимостей, которая позволяет исследовать зависимости между DLL.

2 голосов
/ 12 октября 2010

Вы можете использовать Отражатель или написать его, используя 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);
      }
    }
  }
}
1 голос
/ 12 октября 2010

Вы можете использовать Отражатель .(Рекурсивно разверните узел «Ссылки»)

...