. Вы можете использовать .Net Reflector (от Redgate Software, ранее Lutz Roeder's Reflector) для отслеживания проблем с зависимостями. Это не автоматически, но у меня сработало в прошлом.
- Откройте dll или exe вашего приложения, которое, по вашему мнению, ссылается на отсутствующую зависимость, в Reflector. Возможно, вы захотите начать с упомянутого вами файла interop.dll.
- Щелкните правой кнопкой мыши на dll в Reflector и выберите Disassemble.
- Щелкните по каждому из типов, один за другим, и найдите атрибуты ComImport и TypeLibType, которые определяют GUID любых внешних ссылочных типов COM.
- Откройте regedit и найдите HKEY_CLASSES_ROOT для GUID. Вы должны быть в состоянии встретить Интерфейс, который соответствует GUID, с подразделом TypeLib, который содержит другой GUID.
- Теперь ищите HKEY_CLASSES_ROOT, используя GUID TypeLib. Вы должны найти совпадение с подключом InProcServer32, который содержит путь к COM dll или exe.
Если вы не нашли совпадений, значит, что-то где-то отсутствует. Просто просмотр Reflector может дать вам некоторые подсказки, которые помогут вам отследить, чего не хватает.
Или, если вы найдете совпадения, вы можете оказаться в SDK, который не был установлен должным образом, или в котором могут быть другие сопутствующие библиотеки DLL, которые, возможно, потребуется зарегистрировать вручную (используя regsvr32).
Надеюсь, что это помогает (и имеет смысл).