Ответ 1
Я использую задачу AssemblyInfo, когда вы все время описываете в своем комментарии.
<!-- 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>
Значение VersionNumber передается из файла проекта MSBuild точно так же, как вы описываете:
MSBuild <project_file> /p:VersionNumber=<value>;...
Мы используем цель BeforeBuild для обеспечения того, чтобы файлы AssemblyInfo.cs обрабатывались до начала сборки. Это не то, что вы хотите?