Синтаксис для проводников в 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 здесь, хотя статья может быть немного устаревшей.