Могу ли я использовать манифесты для использования COM-сервера без указания его версии? - PullRequest
1 голос
/ 24 мая 2010

Две наши программы используют один и тот же COM-сервер (также изготовленный нами) с одинаковыми идентификаторами классов.Каждая программа при установке копирует файлы COM-сервера в свою папку и regsvr32 s COM-сервер.

Проблема заключается в том, как установить COM-сервер, чтобы пользователь мог установить одну или обе наши программы вразные папки в любом порядке и, вероятно, разных версий.Понятно, что это невозможно без изменения идентификаторов классов, и это очень сложно с конфигурациями.В идеале мы хотели бы использовать манифесты для этого и обходиться без regsvr32.

. Проблема в том, что каждый раз, когда я читаю о безрегулярном COM (например, здесь ), есть version атрибут в assemblyIdentity.Номер версии должен меняться при каждой ночной сборке, и мне совершенно не нравится идея (автоматической) его корректировки.Я понимаю, почему указание зависимости от конкретной версии хорошо, но в нашем сценарии это совершенно бесполезно.

Существует ли способ записи манифестов как для COM-сервера, так и для потребителя, чтобы они не указывали версии ипросто работать с любой версией файла, находящейся в папке?Также есть ли способ ограничить поиск в той же папке, что и потребитель?

1 Ответ

0 голосов
/ 24 ноября 2010

Windows ищет манифесты только в глобальном местоположении , за которым следует каталог приложения . Если вы ничего не устанавливаете глобально, поиск фактически ограничен одной и той же папкой.

Если вы всегда отправляете COM-сервер в одну и ту же папку с COM-клиентом, это фактически один «программный блок». version соображения - это контракты интерфейса между различными программными модулями, поэтому в вашем сценарии это не имеет значения. Вы можете либо опустить атрибут version из идентификатора, либо установить его на что-то фиксированное, например «1.0.0.0», зная, что в этот момент все зависит от того, как вы распространяете программное обеспечение, чтобы обеспечить правильную версию управления версиями, а не от побочных действий. боковая система.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...