Можно ли использовать видимые COM классы .NET с бесплатной регистрацией COM? - PullRequest
6 голосов
/ 10 февраля 2010

Мы разрабатываем приложение ClickOnce со смесью компонентов .NET и устаревших COM-компонентов C ++.

В настоящее время мы добавляем COM-компоненты C ++ на компьютер пользователя с помощью MSI (это является обязательным условием для установки нашего приложения ClickOnce), что означает, что мы можем заранее зарегистрировать COM-объекты на компьютере пользователя.

Мы все еще можем отправлять обновления для остальной части приложения, написанного на C #, через ClickOnce, но обновление компонентов, установленных MSI, требует ручного вмешательства.

Однако мы пытаемся выяснить, возможно ли установить COM-компоненты C ++ через COM без регистрации, т. Е. Все они находятся в одном каталоге, и у каждого компонента есть файл манифеста, определяющий clsid для каждого COM-объекта. и интерфейс. Это означало бы, что мы можем полностью избавиться от MSI.

Эта ссылка была хорошим введением в тему.

Мне удалось получить компонент .NET для загрузки COM-объекта C ++, но не наоборот.

Кто-нибудь знает, возможно ли это?

1 Ответ

5 голосов
/ 10 февраля 2010

Да, это возможно. Вам нужно будет использовать элемент <clrClass> в манифесте. Здесь есть приличная инструкция , расположенная здесь . Документы SDK в остальном довольно жалкие, вам понадобится блог Junfeng Zhang , чтобы получить лучшую справочную информацию.

...