Похоже, что идеальное решение еще не существует. Чтобы обобщить некоторые исследования:
Make My Manifest ( link )
Этот инструмент сканирует проект VB6 для поиска зависимостей COM, но также поддерживает объявление вручную зависимых COM-зависимостей (т. е. используемых через CreateObject).
Интересно, что этот инструмент помещает всю информацию о зависимостях внутри манифеста приложения. Приложение exe и его зависимости описываются как единая сборка, состоящая из нескольких файлов. Я еще не понял, что это возможно.
Выглядит как очень хороший инструмент, но с версии 0.6.6 он имеет следующие ограничения:
Я не тестировал, поддерживает ли он библиотеки .NET com.
regsvr42 ( codeproject link )
Этот инструмент командной строки генерирует файлы манифеста для собственного COM-модуля библиотеки. Он вызывает DllRegisterServer, а затем шпионит за самостоятельной регистрацией, поскольку он добавляет информацию в реестр. Он также может генерировать манифест клиента для приложений.
Эта утилита не поддерживает .NET COM-библиотеки, поскольку они не выставляют подпрограмму DllRegisterServer.
Утилита написана на C ++ , Исходный код доступен.
mt.exe
Часть окна SDK (может быть загружена из MSDN ), которую вы уже имеете, если у вас есть визуальная студия. Здесь зарегистрировано . Вы можете генерировать файлы манифеста для собственных COM-библиотек следующим образом:
mt.exe -tlb:mycomlib.ocx -dll:mycomlib.ocx -out:mycomlib.ocx.manifest
Вы можете создавать файлы манифеста для .NET COM-библиотек следующим образом:
mt.exe -managedassemblyname:netlib.dll -nodependency -out:netlib.dll.manifest
Однако , есть некоторые проблемы с этим инструментом:
и
, которые необходимо удалить до того, как манифесты действительно будут работать. Возможно, будущие версии SDK улучшит этот инструмент, я протестировал его в Windows SDK 6.0a (vista).