Есть ли способ автоматического извлечения записей реестра для COM Interop? - PullRequest
1 голос
/ 03 мая 2011

При использовании Wix / Votive для создания проектов установки с интеграцией Visual Studio создается впечатление, что регистрация COM является большой дырой в наборе функций.И Visual Studio, и интегрированные проекты установки Visual Studio делают это практически без усилий.Wix, с другой стороны, делает это особенно болезненным .

Во время процесса сборки Votive вызывает Heat.exe для сбора ссылочных проектов.Почему он не может в этот момент также собрать записи реестра, необходимые для COM Interop?Это интегрировало бы процесс в сборку и освободило бы разработчиков от этой утомительной работы.Он также будет поддерживать декларативный / управляемый данными процесс установки.

Кто-нибудь задумывался над тем, чтобы сделать что-то подобное?Я полагаю, что было бы необходимо отредактировать некоторые цели Wix MSBuild, я не достаточно уверен в MSbuild, чтобы сделать это самостоятельно.Я был бы действительно заинтересован , чтобы услышать от любого, кто имел удар в это все же.

1 Ответ

2 голосов
/ 04 мая 2011

Я не верю в динамическое создание компонентов во время сборки. Я написал целые статьи о хрупкости и недетерминированном поведении этого паттерна. Вместо этого я обращаюсь с исходным кодом установщика точно так же, как с остальной частью системы, и создаю его заранее и проверяю, чтобы сборка просто компилировалась.

В этой ситуации я использую высокую температуру для генерации данных реестра для моих COM / COM Visible DLL. Будучи ленивым, я написал крошечную утилиту winforms, которая помещает наблюдателя файловой системы в каталог, и всякий раз, когда появляется уведомление об изменении, я передаю каталог в жару. Затем я получаю вывод Heat и загружаю его в winform, используя редактор XML для выделения. Я смотрю на то, что он написал, и если мне это нравится, я копирую и вставляю его в мои файлы wxs.

Обновлено с URL по запросу:

Работа с очень большим количеством файлов

...