TFS MSBuild: объединение параллельных сборок и последовательных сборок в одном файле TFS .proj - PullRequest
1 голос
/ 28 апреля 2011

Я лягу сценарий:

  1. У нас есть TFS build .proj, который строит 3 решения зависимостей последовательно.
  2. Затем он строит около 100 несвязанных решений параллельно.

Казалось, что это нормально работает в .net 3.5, однако, поскольку мы перешли на 4.0, кажется, что решения для зависимостей строятся параллельно, что вызывает проблемы.

Я всегда мог просто сделать

<Exec Command="C:\PATH\TO\MSBUILD SOLUTION1">
<Exec Command="C:\PATH\TO\MSBUILD SOLUTION2">
<Exec Command="C:\PATH\TO\MSBUILD SOLUTION3">

и т. Д., Но это выглядит немного грязно.

Итак, мой вопрос: как я могу сказать MSBUILD строить некоторые решения в последовательности, а затем создавать нагрузки для других параллельно?

(наш текущий шаблон сборки ниже)

<ItemGroup>
  <SolutionToBuild0 Include="$(SolutionRoot)\Solutions\MSBuildTasks\MSbuildTasks.sln"/>

  <SolutionToBuild1 Include="$(SolutionRoot)\Solutions\Level1\Level1.sln" />

  <SolutionToBuild2 Include="$(SolutionRoot)\Solutions\Level2\Level2.sln" />

  <SolutionToBuild3 Include="$(SolutionRoot)\Solutions\xxx.Reporting\xxx.Reporting.sln />
</ItemGroup>

<MSBuild Projects="@(SolutionToBuild0)" Targets="Build" Properties="TeamBuildConstants=$(TeamBuildConstants)" BuildInParallel="false" />

<MSBuild Projects="@(SolutionToBuild1)" Targets="Build" Properties="TeamBuildConstants=$(TeamBuildConstants)" BuildInParallel="false" />
<MSBuild Projects="@(SolutionToBuild2)" Targets="Build" Properties="TeamBuildConstants=$(TeamBuildConstants)" BuildInParallel="false" />
<MSBuild Projects="@(SolutionToBuild3)" Targets="Build" Properties="TeamBuildConstants=$(TeamBuildConstants)" BuildInParallel="false" />

<SolutionToBuild Include="$(SolutionRoot)\Solutions\xxx.LocationImporter\xxx.LocationImporter.sln" />
<SolutionToBuild Include="$(SolutionRoot)\xxx\Dev\Source\server_and_common2008.sln" />

`

1 Ответ

0 голосов
/ 29 апреля 2011

Вы упомянули зависимость решения, мне интересно, можете ли вы использовать ссылку на проект для решения вашей проблемы?Если вы можете указать зависимость ваших проектов, используя ссылки на проекты, то MSBuild определит, что нужно строить параллельно, а что нет.

Посмотрите, могут ли ваши проблемы быть решены ответами на форуме Team Build:

http://social.msdn.microsoft.com/Forums/en/tfsbuild/thread/80b15488-771e-4b0f-92a3-0175a639286e

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...