Мне нужно проверить, существуют ли зависимости исполняемого файла и, если возможно, правильная версия этой зависимости. Включая зависимости зависимости. Используя dumpbin.exe, я могу собрать зависимости exe или dll. Например
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin>dumpbin.exe /dependents "C:\Program Files (x86)\Notepad++\notepad++.exe"
Microsoft (R) COFF/PE Dumper Version 14.00.24215.1
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file C:\Program Files (x86)\Notepad++\notepad++.exe
File Type: EXECUTABLE IMAGE
Image has the following dependencies:
COMCTL32.dll
SHLWAPI.dll
SHELL32.dll
KERNEL32.dll
USER32.dll
GDI32.dll
COMDLG32.dll
ADVAPI32.dll
ole32.dll
Summary
20000 .data
52000 .rdata
13000 .reloc
86000 .rsrc
10F000 .text
Я читаю вывод dumpbin.exe через Process.Start () в C # и анализирую возвращаемые данные, нет проблем. Я также могу проверить, существует ли файл, легко ... Однако вполне возможно, что в системе существует более одной зависимости зависимости. Как бы вы проверили наличие правильной зависимости или версии указанной зависимости? Это становится важным, поскольку валидация зависимостей также существует. Было бы неплохо, если бы был способ подняться выше как
"C:\Windows\System32\ole32.dll"
Есть мысли по этому поводу? Заранее спасибо!
(PS- если у меня это совершенно неправильно с точки зрения расположения dll, как будто оно может жить только в исполняемом пути .exe или system32, скажите, пожалуйста, спасибо)