utilizo el siguiente objetivo de hacer esto:
<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>
Esto reemplaza la revisión (cuarto número) en cualquiera de los archivos AssemblyInfo (en múltiples proyectos) . Examina las etiquetas AssemblyVersion AssemblyFileVersionAttribute y AssemblyFileVersion y utiliza la propiedad $ (Revisión) MSBuild para el número (Tengo otro objetivo llamado GetRevision que obtiene esto de SVN y establece la propiedad, por lo que esta depende de ese objetivo). El regex regex maneja los números de versión que tienen 3 o 4 dígitos (tenía un grupo de 3 solamente, por la razón que sea).
También establece/sobrescribe la información de la empresa y los derechos de autor, y la establece en "Mi empresa". Para los derechos de autor, era flojo y lo hice para que siempre use el año actual, así que no tengo que acordarme de actualizarlo cada año (por lo que dice, por ejemplo, "Copyright (c) 2009-2010 My Company").
Este objetivo requiere la extensión MSBuild Community tasks.
Como cuestión de política, todo lo registrado en SVN tiene 0,0 como el último número, y sólo el servidor CI cambia este valor cuando se está haciendo una generación. Esto nos permite ver rápidamente la diferencia entre las compilaciones creadas por los desarrolladores (que nunca se les permite ir a los clientes) y las compilaciones "oficiales" creadas por el servidor de CI.
Esta pregunta no está relacionada con el instalador de wix o Windows en absoluto, por lo que he editado en consecuencia. –
Una cosa más ... ¿puedo usar estas propiedades $ 1, $ 2 y $ 3 más ... como para asignarle valor a alguna otra propiedad que haya tomado. ?? en realidad necesito extraer el major.minor, construir el número y tener que usarlos en otro lugar ... así que, para eso los necesito ... así que, ¿pueden hacer este último favor ... –