Включите содержимое текстового файла в сценарий WiX

Есть ли способ прочитать значение переменной WiX из текстового файла?

Я пытаюсь включить информацию о версии в пакет instlal.

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

Одно из возможных решений - обновить весь файл .wxs на этапе предварительной сборки, но это выглядит немного небрежно.

Есть ли другой, менее навязчивый способ?

Спасибо.


person user48829    schedule 28.12.2008    source источник


Ответы (2)


Создайте отдельный файл includes.wxi, например, вот так:

<?xml version="1.0" encoding="utf-8"?>
<Include Id="VersionNumberInclude">
    <?define MajorVersion="1" ?>
    <?define MinorVersion="5" ?>
    <?define MicroVersion="99" ?>
    <?define BuildVersion="14954" ?>
</Include>

Вы можете включить этот файл в свой файл wxs следующим образом:

<?include VersionNumberInclude.wxi ?>

И определения можно использовать так:

<?define VersionNumberInternal="$(var.MajorVersion).$(var.MinorVersion).$(var.BuildVersion)" ?>
<?define VersionNumberUserVisible="$(var.MajorVersion).$(var.MinorVersion).$(var.MicroVersion).$(var.BuildVersion)" ?>
person Stefan    schedule 28.12.2008
comment
Спасибо, Стефан, это было именно то, что мне нужно. Очень аккуратный! - person user48829; 29.12.2008

В моей среде сценарии WiX всегда создаются файлом MSBuild. Это означает, что я могу передать любую информацию о версии, которую хочу, в командной строке. CruiseControl.NET передает эти номера версий моему скрипту WiX при сборке.

person Dave Markle    schedule 28.12.2008