У нас есть TFS 2008, наша сборка настроена для проверки всех файлов AssemblyInfo.cs в проекте, обновления их с помощью AssemblyInfoTask, а затем либо отменить checkout, либо checkin в зависимости от была ли построена или нет. К сожалению, когда две сборки находятся в очереди близко друг к другу, это приводит к частично завершенной сборке, поскольку файлы AssemblyInfo.cs, кажется, проверяются в более ранней версии предыдущей проверки.Автоматическое обновление и проверка файлов 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)"/>
Вы правы, мы проверяем, модифицируем, а затем, как только сборка преуспела, зайдите снова. Это необходимо для того, чтобы модифицированный AssemblyInfo.cs соответствовал нашему модифицированному номеру сборки и помогал нам в восстановлении предыдущей версии. Я предполагаю, что вторая команда получения не способ? – 2008-10-07 09:11:19