Синтаксис для проводников в WIX?

Каков правильный синтаксис для предоставления направляющих для компонентов в файле wxs для WIX?

В большинстве образцов я нашел

Guid="00AD2D6E-BF8A-4EA8-BE9A-57380DECD0E6"

но в некоторых образцах я нашел

Guid="{00AD2D6E-BF8A-4EA8-BE9A-57380DECD0E6}"

Я бы предпочел вторую версию, потому что она напрямую генерируется инструментом GuidGen. Но правильно ли это?

3 ответа

Решение

Компилятор WiX преобразует любую форму в форму, ожидаемую установщиком Windows (с фигурными скобками и заглавными буквами).

Авто-гиды и значения атрибутов по умолчанию

В дополнение к совету Боба Арнсона:

  • Последние версии Wix позволяют автоматически генерировать идентификаторы GUID для нескольких вещей, наиболее важными являются GUID компонентов. Он также охватывает коды пакетов, продуктов и патчей.
  • Это также позволяет пропускать некоторые или даже большинство значений атрибутов из явного определения, так как большинство из них могут быть установлены по умолчанию в предсказуемые значения. См. Фрагмент кода ниже для примера.
  • Автоматическая генерация идентификаторов GUID компонентов возможна, потому что идентификаторы GUID компонентов должны оставаться неизменными после создания, если только не был изменен путь установки - это описано в этом сообщении, посвященном стеку Соответственно Wix вычисляет GUID на основе целевого пути и других факторов.
  • Код продукта, пакета и патча, как правило, может быть создан случайным образом, поскольку они просто должны быть уникальными.
  • Обратите внимание, что код обновления является особенным - он не должен генерироваться автоматически. Как правило, желательно оставаться стабильным между выпусками и даже между различными выпусками и языками программного обеспечения в некоторых случаях - это зависит от дизайна приложения и того, как реализованы выпуски (вы можете использовать разные коды обновления и все же реализовать значительное обновление, но обновление стол усложняется).
  • Как правило, код обновления большого пальца идентифицирует " семейство связанных продуктов ", код продукта идентифицирует установленную версию какого-либо вида, а код пакета идентифицирует уникальный файл. Два файла с одним и тем же кодом пакета по определению рассматриваются как один и тот же файл (это может привести к загадочным ошибкам - обязательно всегда автоматически генерируйте код пакета).
  • Проверьте документацию Wix для получения подробной информации об автоматически сгенерированных GUID.

Упрощенные исходные файлы Wix XML

При правильном использовании эти автоматически сгенерированные GUID могут значительно упростить исходные файлы Wix:

<!-- Sample guid below, do not copy paste -->
<Component Id="File.dll" Guid="{12345678-1234-1234-1234-123456789ABC}">
  <File Id="File.dll" Name="File.dll" KeyPath="yes" Source="..\File.dll" />
</Component>

против

<Component>
  <File Source="..\File.dll" />
</Component>

Взятые вместе, комбинация автогидов и значений атрибутов по умолчанию дает исходные файлы Wix XML, которые становятся короче и проще для чтения благодаря удалению большого количества "шума" - это, вероятно, делает их менее подверженными ошибкам:

  • Более простые исходные файлы легче поддерживать и они менее подвержены ошибкам, поскольку с помощью инструментов сравнения легче увидеть, что меняется, и чем меньше текста, тем меньше ошибок можно скрыть
  • в том же духе копирование и вставка существующих элементов XML может привести к трудностям при поиске ошибок из-за неполного обновления всех атрибутов. Меньше атрибутов, меньше ошибок. Я много копирую и вставляю при использовании Wix "вручную" (без использования генераторов XML). Обратите внимание, что большинство ошибок обнаруживаются компилятором и компоновщиком Wix, но ошибки все еще могут скрываться.
  • любые изменения значений по умолчанию могут быть автоматически получены из компилятора, и компоновщик, облегчающий их распространение, распространяется на файлы MSI везде, где они были собраны с помощью Wix. Всегда полезно сохранять исходные файлы максимально простыми, но не проще
  • переопределенные значения по умолчанию также выделяются в исходном файле, и вы можете добавить комментарии, объясняющие, почему необходимо значение не по умолчанию

Другие советы Wix здесь, хотя статья может быть немного устаревшей.

Я использовал оба из них, и оба, кажется, работают отлично.

Другие вопросы по тегам