Utilizo la tarea AssemblyInfo como usted describe en su comentario todo el tiempo.
<!-- update standard assembly attribute in all projects -->
<Target Name="BeforeBuild" >
<Message Text="Updating AssemblyInfo to Version $(VersionNumber)"></Message>
<Message Text="Writing to AssemblyInfo files in $(SolutionRoot)"></Message>
<AssemblyInfo AssemblyInfoFiles="@(AssemblyInfoFiles)"
AssemblyCopyright="$(AssemblyCopyright)"
AssemblyVersion="$(VersionNumber)"
AssemblyFileVersion="$(VersionNumber)"
>
</AssemblyInfo>
</Target>
El valor VersionNumber se pasa desde fuera del archivo de proyecto de MSBuild exactamente como lo describen:
MSBuild <project_file> /p:VersionNumber=<value>;...
Utilizamos el objetivo BeforeBuild para asegurar los archivos de todos los AssemblyInfo.cs ponerse nervioso antes de los inicios de construcción . ¿No es esto lo que quieres?
¿Por qué la tarea AssemblyInfo no es adecuada para usted? Su propósito * es * establecer la información de ensamblaje, incluido el atributo de número de versión (AssemblyVersion). – DaveE
El número de versión debe configurarse en función de algunas reglas externas, no de algunas reglas que pueden incorporarse utilizando AssemblyInfoTask. Básicamente, quiero que el argumento de línea de comando se convierta en el número de versión. – user379429