Я использую задачу предварительной сборки в Visual Studio 2008, которая вызывает msbuild:
C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe $(MSBuildProjectDirectory)\version.targets /p:Configuration=$(ConfigurationName)
Внутри version.targets я обновляю файл AssemblyInfo.cs, чтобы заменить информацию о версии:
<FileUpdate
Encoding="ASCII"
Files="$(MSBuildProjectDirectory)\Properties\AssemblyInfo.cs"
Regex="AssemblyInformationalVersion\(".*"\)\]"
ReplacementText="AssemblyInformationalVersion("Product $(ConfigurationString) ($(buildDate))")]"
/>
Когда я собираю проект через Visual Studio 2008, он собирается без проблем.
Но когда я смотрю на полученную информацию о версии exe, она содержит предыдущую отметку времени, хотя AssemblyInfo.cs был изменен на «правильный».
Кажется, что изменения предварительной сборки не видны основной задаче компиляции и всегда отстают.
Любые идеи о том, что я делаю неправильно?