Сбор .csproj с heat.exe в Visual Studio 2008 и WiX (v3) - PullRequest
7 голосов
/ 14 апреля 2009

Я обнаружил, что Wix v3 использует инструмент (heat.exe) для «сбора» информации в фрагменты WiX. Либо я смотрю не в том месте, либо это плохо документировано.

Каков наилучший способ автоматической генерации фрагмента WiX (вероятно, с использованием heat.exe) для сложной структуры папок, содержащей медиа-файлы:

  • разных типов (ico / png / xaml / etc)
  • Это может регулярно меняться (имена / места / добавляет / удаляет)
  • , которые классифицируются как "Содержимое" и включаются в .csproj

так, что они могут быть встроены в установщик через WiX и будут выдерживать обновления и исправления с приличиями?

Справочная информация

  1. Я обнаружил файл heat.exe, который, по-видимому, отвечает требованию автоматического создания фрагмента WiX
  2. Работая с харвестером "dir", я заметил харвестер "project" (справка по командной строке)
  3. Носитель уже находится в файле проекта C #, и поэтому отметил, что "-pog: Content" может работать очень хорошо
  4. В результате быстрого поиска обнаружена устаревшая документация, в которой не упоминается комбайн "project"
  5. Реализовал, что весь установщик проекта, вероятно, мог бы работать с харвестером "project", но не был уверен, насколько хорошо это поддерживается и каковы подводные камни.
  6. Увидел генерацию "PUT-GUID-HERE" и понял, что автогенерация направляющих может иметь последствия для обновления / исправления.
  7. Понял, что должны быть люди, которые используют эти инструменты для схожих целей и, вероятно, могут указать мне правильное направление.

Было (справедливо) отмечено, что v3 еще не "завершен" (таким образом, дефицит документации и учебных пособий). Смысл, который я сейчас понимаю, заключается в том, что автоматизировать это в моих сценариях сборки нетривиально, и инструменты для этого сейчас растут.

Ответы [ 4 ]

2 голосов
/ 14 апреля 2009

По моему опыту, Парафин Джона Роббинса решает многие проблемы с tallow.exe (heat.exe в v3). Я не уверен, что Paraffin хорошо играет с v3, но, возможно, стоит проверить.

К вашему сведению, я использовал Paraffin в процессе сборки, и это позволило мне удалить предыдущий процесс очистки на 2-3 шага, который включал сценарий powershell.

1 голос
/ 14 апреля 2009

Чтобы узнать об обновлении автоматически сгенерированных настроек, прочитайте это . Сообщение на дом:

Установщик Windows не позволяет вам удалить компоненты при незначительном обновлении

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

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

0 голосов
/ 14 апреля 2009

Для получения документации ознакомьтесь с файлом справки, установленным с WiX - WiX.chm предоставляет самую последнюю информацию (вместе с параметром командной строки -help).

0 голосов
/ 14 апреля 2009

Спасибо за фон, я не знал, что они работают над новой версией Wix. Согласно странице проекта, это еще не RTM, так что это может объяснить ваши проблемы. Я надеюсь услышать от разработчиков WIX в одном из ответов.

Я не могу помочь вам использовать возможности недостаточно разработанного Heat.exe. Тем не менее, я был в вашей ситуации, и мое решение состояло в том, чтобы создать инструмент, который использовал бы информацию о каталогах и файлах в качестве входных данных и генерировал действительные файлы проекта wix в качестве выходных данных. Файл .vsproj - это просто файл XML, и вы можете использовать XSL, LINQ в C #, PowerShell или ряд других инструментов для выполнения этой работы. Я лично использовал (pre-LINQ) C # / XMLDOM для анализа файлов проекта VS для этой цели.

Удачи,

Dave

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