LeMS_Studios Ответов: 1

Как проверить, использует ли программа .NET?


Я пытаюсь определить, было ли запущенное приложение построено с использованием .NET. Можно использовать как до-диез или VB.

Что я уже пробовал:

Я нашел решение по этому вопросу. переполнение стека но решение , похоже, больше не работает. Поэтому я разбил метод решения на части и сделал консоль.WriteLine() для каждого из имен модулей. Два модуля, которые ищет решение, не перечислены, а загруженные модули: ntdll.dll, wow64.dll, wow64win.dll, wow64cpu.dll.
Любая помощь будет оценена по достоинству.

1 Ответов

Рейтинг:
11

phil.o

Использование ildasm.exe (третий ответ в вопросе SO, на который вы ссылаетесь).

Программно можно попробовать загрузить сборку:

public static bool IsAssembly(string absolutePath)
{
   try
   {
      Assembly assembly = Assembly.LoadFile(absolutePath);
      return true;
   }
   catch (Exception _)
   {
      return false;
   }
}
Собрание.Метод LoadFile (System.Размышления) | Майкрософт Документы[^]


LeMS_Studios

Я ищу логический метод с параметром либо путь к файлу, либо процесс приложения. Что-то похожее на решение с 41 голосом за SO.

phil.o

Я отредактировал свой ответ для программного решения.