Я использую следующую цель, чтобы сделать это:
<Target Name="UpdateAssemblyInfoVersion" DependsOnTargets="GetRevision">
<CreateItem Include="**\AssemblyInfo.vb">
<Output TaskParameter="Include" ItemName="AssemblyFiles"/>
</CreateItem>
<Time>
<Output TaskParameter="Year" PropertyName="Year" />
</Time>
<FileUpdate Files="@(AssemblyFiles)"
Multiline="true"
Singleline="false"
Regex="(AssemblyVersion|AssemblyFileVersionAttribute|AssemblyFileVersion)\("([0-9]+\.[0-9]+\.[0-9]+)(\.[0-9]+)?"\)"
ReplacementText="$1("$2.$(Revision)")" />
<FileUpdate Files="@(AssemblyFiles)"
Multiline="true"
Singleline="false"
Regex="AssemblyCompany\(".*"\)"
ReplacementText="AssemblyCompany("My Company")" />
<FileUpdate Files="@(AssemblyFiles)"
Multiline="true"
Singleline="false"
Regex="AssemblyCopyright\(".*"\)"
ReplacementText="AssemblyCopyright("Copyright © 2009-$(Year) My Company")" />
</Target>
Это заменяет ревизию (четвёртое число) в любом из файлов AssemblyInfo (в нескольких проектах) , Он рассматривает теги AssemblyVersion AssemblyFileVersionAttribute и AssemblyFileVersion и использует свойство $ (Revision) MSBuild для числа (у меня есть еще одна цель, называемая GetRevision, которая получает это из SVN и устанавливает свойство, поэтому это зависит от этой цели). Замена регулярных выражений обрабатывает номера версий, которые имеют либо 3, либо 4 цифры (по какой-либо причине у меня была группа только с 3).
Он также устанавливает/перезаписывает информацию о Компании и авторских правах и устанавливает ее в «Моя компания». Для авторских прав я был ленив и делал это так, чтобы он всегда использовал текущий год, поэтому мне не нужно постоянно его обновлять (поэтому он говорит, например, «Copyright (c) 2009-2010 My Company»).
Для этой цели требуется расширение MSBuild Community tasks.
По сути политики, все проверил в SVN имеет .0 в качестве последнего числа, и только сервер CI изменяет это значение, когда он делает сборку. Это позволяет быстро рассказать о различиях между созданными разработчиками сборками (которые никогда не разрешены для клиентов) и «официальными» сборками, созданными сервером CI.
Этот вопрос вообще не связан с установщиком wix или windows, поэтому я отредактировал его соответствующим образом. –
Еще одна вещь..может ли я использовать эти свойства $ 1, $ 2 и $ 3 далее ... как бы присвоить значение какой-либо другой собственности, принятой. ?? На самом деле мне нужно извлечь майор.minor, построить номер и использовать их где-то в другом месте. Так, для этого мне они нужны. Так, можете ли вы, пожалуйста, сделать последнюю услугу. –