Изменить установщик Windows COM Регистрация - PullRequest
0 голосов
/ 02 февраля 2012

Мой проект установки в Visual Studio развертывает DLL, которая настроена для регистрации в COM. Установщик позаботится о необходимых настройках реестра, но есть один ключ, который я хотел бы изменить: ключ InprocServer32 в одном из моих классов. Обычно он содержит «mscoree.dll», но мне нужно, чтобы он содержал «[SystemFolder] mscoree.dll». Я пытался исправить это несколькими способами.

Первым делом я попытался создать преобразование MSI с добавленной записью в таблицу Registry и применить его в качестве действия после сборки. Это обычно ломалось, потому что мои ключи компонентов не были согласованы между сборками.

Затем я попытался создать запись реестра с помощью VS в окне реестра. Это не сработало, потому что регистрация COM перезаписала мой раздел реестра, а не наоборот.

Затем я вернулся к идее преобразования MSI, добавил запись в таблицу компонентов и сделал запись ключа реестра частью этого компонента. Это совсем не сработало, и я не знаю почему.

Итак, кто-нибудь знает, как изменить регистрацию COM в установщике Windows? Можете ли вы указать, где я ошибся?

Ответы [ 2 ]

0 голосов
/ 03 февраля 2012

Я только что понял, что ты сказал mscoree, правильно?Технически это означает, что на самом деле это не COM (нативный dll), а COM Interop (управляемый dll).Вы можете отключить атрибут COM в VDPROJ и использовать Regasm /regfile:test.reg foo.dll для генерации regfile.Тогда вы могли бы написать все, что вы видите в компонентах реестра в VDPROJ.

Понимаете, что этот стиль не будет автором элегантного установщика.

0 голосов
/ 03 февраля 2012

Это нелегко сделать с помощью проектов развертывания Visual Studio. Один из многих недостатков, которые привели к удалению Microsoft из следующего выпуска Visual Studio.

Ознакомьтесь с другими инструментами, такими как InstallShield Professional и установщик Windows XML.

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