Наша сборка TFS 2008 настроена для извлечения всех файлов AssemblyInfo.cs в проекте, обновления их с помощью AssemblyInfoTask, а затем отменяет извлечение или проверку в зависимости от того, прошла сборка или нет. К сожалению, когда две сборки находятся в очереди близко друг к другу, это приводит к Частично завершенной сборке, поскольку файлы AssemblyInfo.cs, кажется, извлекаются из более ранней версии, чем предыдущая регистрация.
Чтобы обойти это, я подумал, что мог бы использовать задачу «Получить», чтобы принудительно установить файлы AssemblyInfo.cs до последней версии перед их обновлением, но, похоже, это не имеет никакого эффекта. Есть идеи?
<Target Name="AfterGet" Condition="'$(IsDesktopBuild)'!='true'">
<Message Text="SolutionRoot = $(SolutionRoot)" />
<Message Text="OutDir = $(OutDir)" />
<!-- Set the AssemblyInfoFiles items dynamically -->
<CreateItem Include="$(SolutionRoot)\Main\Source\InputApplicationSln\**\$(AssemblyInfoSpec)">
<Output ItemName="AssemblyInfoFiles" TaskParameter="Include" />
</CreateItem>
<Message Text="$(AssemblyInfoFiles)" />
<!-- When builds are queued up successively, it is possible for the next build to be set up before the AssemblyInfoSpec is checked in so we need to force
the latest these versions of these files to be got before a checkout -->
<Get Condition=" '$(SkipGet)'!='true' " TeamFoundationServerUrl="$(TeamFoundationServerUrl)" Workspace="$(WorkspaceName)" Filespec="$(AssemblyInfoSpec)" Recursive="$(RecursiveGet)" Force="$(ForceGet)" />
<Exec WorkingDirectory="$(SolutionRoot)\Main\Source\InputApplicationSln"
Command="$(TF) checkout /recursive $(AssemblyInfoSpec)"/>