Интересное пользовательское действие, написанное с использованием DTF в Wix - PullRequest
2 голосов
/ 26 февраля 2010

Сложная ситуация произошла, когда я работал с установкой, чтобы обеспечить проверку ключа продукта. Мне пришлось использовать неуправляемый код C ++ для проверки ключа . На самом деле у нас была основная логика проверки, написанная на C #, и мне пришлось создать смешанный проект. Проблема не была остановлена ​​только с этим, это продолжалось. Поскольку я использовал код VC ++, он ожидал, что по крайней мере распространяемый пакет времени выполнения VC ++ будет установлен на клиентском компьютере. Я думал об отказе от плана по переносу нашей установки на Wix из-за подобных проблем.

Но я узнал, что есть замечательная и очень интересная функция, которая DTF доступна в Wix для интеграции любых действий в C #. Я использовал его и мог интегрировать проверку ключа за пару часов, и до сих пор он работает нормально на всех клиентских компьютерах, которые я внедрил до 6 месяцев.

У вас есть интересный момент или приятный опыт с DTF?

Ответы [ 3 ]

2 голосов
/ 28 февраля 2010

Поищите в моем блоге по номеру http://blog.deploymentengineering.com DTF, и вы найдете много полезного контента. Мне нравится DTF, но я все еще верю, что лучшее решение - избегать CA, по возможности, во-первых. C #, как и предыдущий VBScript, настолько заманчив, что он склонен заставлять разработчиков с настоятельным мышлением писать CA, когда в этом нет необходимости. Я полагаю, что по этой причине DTF так долго не выпускали.

На моей повседневной работе мое одобрение требуется всем, кто считает, что им нужен центр сертификации. Я инструктирую разработчиков по основным принципам MSI, как использовать DTF, как подключить отладчик, и я даю понять, что они готовы, если у него когда-нибудь возникнут проблемы. Результат - очень мало, но хорошо написанных CA в нашей линейке продуктов.

1 голос
/ 26 февраля 2010

Я написал несколько .NET CA для поддержки наших установок на основе WiX:

  1. Managed Wrapper вокруг HTTPAPI.DLL - поддерживает создание привязок IP-адресов / портов и списков ACL URL-адресов HTTP для использования при развертывании служб WCF. Я планирую превратить это в расширение Wix. Было очень интересно узнать, как правильно обрабатывать откаты и т. Д.

  2. Диалог выбора SSL, который отображает все сертификаты SSL в системе и позволяет выбрать один.

  3. Диалоговое окно браузера SQL Server - позволяет просматривать сеть для серверов SQL, а затем просматривать серверы SQL для баз данных. При желании использует олицетворение. Это для создания строки соединения.

  4. Я нахожусь в процессе написания набора центров сертификации, которые будут использовать сборку Microsoft.Web.Administration для выполнения собственных установок веб-приложений на IIS 7 (без необходимости установки функции совместимости метабазы ​​IIS 6).

1 голос
/ 26 февраля 2010

Прежде всего, пользовательские действия в C # / DTF по-прежнему являются пользовательскими действиями (здесь нет никакой магии :-)), поэтому вы должны следовать всем различным рекомендациям CA, работающим с этим видом. Он упрощает большинство задач MSI, абстрагируя низкоуровневый API от хорошо разработанных классов высокого уровня. Также имейте в виду, что вы можете использовать управляемый код CA только в том случае, если на целевом компьютере установлен .NET (или установите его в качестве предварительного условия). Наконец, документация dtf.chm, которая распространяется вместе с набором инструментов WiX, содержит несколько простых, но не требующих пояснений примеров.

Надеюсь, это поможет.

...