Сбор данных .csproj с помощью heat.exe в Visual Studio 2008 и WiX (v3)

StackOverflow https://stackoverflow.com/questions/745267

Вопрос

Я обнаружил, что 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. Беглый поиск выявил устаревшую документацию, в которой не упоминался "проект" harvester
  5. Понял, что установщик всего проекта, вероятно, мог бы выполнить с помощью "project" harvester, но не был уверен, насколько хорошо это поддерживается и каковы подводные камни.
  6. Увидел генерацию "PUT-GUID-HERE" и понял, что автогенерация guid, вероятно, будет иметь последствия для обновления / исправления.
  7. Понял, что должны быть люди, которые используют эти инструменты для аналогичных целей и, вероятно, могли бы указать мне правильное направление.

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

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

Удачи,

Дэйв

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top