Автоматическое увеличение номера сборки с использованием WIX - PullRequest
3 голосов
/ 21 июня 2010

Я использую инструмент WIX для создания установочного файла для нашего проекта.

Я хочу иметь динамический (инкрементный) номер сборки. Так может кто-нибудь, пожалуйста, ведите меня.

Пожалуйста, не предоставляйте решение, подобное 1.0.0. *, Так как это дает любое динамическое число в конце. Я хочу, чтобы это увеличивалось как 1.0.0.1, 1.0.0.2, 1.0.0.3, .....

Ответы [ 2 ]

1 голос
/ 07 января 2014

Вы можете использовать задачи сообщества msbuild Класс версии. например,

<PropertyGroup>

    <MinorIncrement Condition=" '$(ReleaseType)' == 'Internal' ">None</MinorIncrement>
    <MinorIncrement Condition=" '$(MinorIncrement)' == '' ">Increment</MinorIncrement>
    <BuildIncrement>Increment</BuildIncrement>
    <BuildIncrement Condition=" '$(MinorIncrement)' == 'Increment' ">Reset</BuildIncrement>
</PropertyGroup>

<Target Name="BumpVersion">
    <Version VersionFile="version.txt" MinorType="$(MinorIncrement)" BuildType="$(BuildIncrement)">
        <Output TaskParameter="Major" PropertyName="Major"/>
        <Output TaskParameter="Minor" PropertyName="Minor"/>
        <Output TaskParameter="Build" PropertyName="Build"/>
        <Output TaskParameter="Revision" PropertyName="Revision"/>
    </Version>

    <AssemblyInfo CodeLanguage="CS" OutputFile="VersionInfo.cs" AssemblyVersion="$(Major).$(Minor).$(Build).$(Revision)" AssemblyFileVersion="$(Major).$(Minor).$(Build).$(Revision)"/>
    <Message Text="Version: $(Major).$(Minor).$(Build).$(Revision)"/>
</Target>

В верхнем разделе я устанавливаю значения для типов выпуска. К сожалению, они, похоже, документированы только в коде.

CruisControl.Net настраивает ReleaseType извне.

Если у нас ReleaseType 'Internal', то незначительное приращение не выполняется, но номер сборки увеличивается, а если нет, мы увеличиваем вспомогательный номер и сбрасываем номер сборки.

Элемент Version будет читать версию из version.txt в форме "1.0.1.3", делать с ней что-то и затем читать ее в некоторые переменные, что и есть выходной бит (думаю!) Для использования бит, который изменяет информацию о сборке

1 голос
/ 23 июня 2010

Вы не можете сделать это с WiX изначально.

Однако вы можете определить свою версию как переменную.Например:

<Product Id="*"
         UpgradeCode="$(var.Property_UpgradeCode)"
         Name="!(loc.ApplicationName)"
         Language="!(loc.Property_ProductLanguage)"
         Version="$(var.version)"
         Manufacturer="!(loc.ManufacturerName)" >

Затем вы можете ввести номер версии в командной строке.Вот пример использования Nant

<candle
          out="${dir.obj}\"
          rebuild="true"
          extensions="WixUIExtension;WixNetFxExtension">
            <defines>
                <define name="ProcessorArchitecture" value="${release.platform}" />
                <define name="SourceDir" value="${dir.source}" />
                <define name="version" value="${version}" />
                <define name="releasetype" value="${release.type}" />
                <define name="Language" value="${language}" />
            </defines>

            <sources>
                <include name="*.wxs" />
            </sources>
        </candle>

Затем вы просто обрабатываете номер версии так же, как вы делаете для своего приложения:)

...