Вручную инициируйте сборку команды TFS

Только после того, как я вошел в:

Settings > Apps & Features > Programs and Features > Turn Windows features on or off

и включил:

SMB Direct (поддержка удаленного прямого доступа к памяти (RDMA) для SMB 3. x протокол обмена файлами)

успешно запустил Vagrant экземпляр Hyper-V с моими общими папками.

Я не пытался пропустить некоторые из моих действий (например, временно отключить антивирусное программное обеспечение), но успешно выполнил все вышеперечисленное.

После того, как я не смог найти это четко задокументированное В ЛЮБОМ МЕСТЕ (не на сайте Vagrant, сайте Hyper-V, Stackoverflow, тоннах поисковых запросов Google) и боролся с этой проблемой в течение бесчисленных часов, я просто хотел поделиться этим, чтобы спасти других боль, которую я пережил. Надеюсь, это поможет!

5
задан Mark 10 October 2008 в 13:33
поделиться

2 ответа

Одним путем Вы могли сделать это, Вы, мог цель AfterEndToEndIteration в Ваш файл TFSBuild.proj, который будет выполнять командную строку TfsBuild.exe для запуска Вас другие сборки. Я думаю что-то вроде этого (хотя я не протестировал его),

  <Target Name="AfterEndToEndIteration">

    <GetBuildProperties TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
                        BuildUri="$(BuildUri)"
                        Condition=" '$(IsDesktopBuild)' != 'true' ">
      <Output TaskParameter="Status" PropertyName="Status" />
    </GetBuildProperties>

    <Exec Condition=" '$(Status)'=='Succeeded' "
          Command="TfsBuild.exe start /server:$(TeamFoundationServerUrl) /buildDefinition:&quot;Your Build Definition To Run&quot;" />

  </Target>
4
ответ дан 14 December 2019 в 09:05
поделиться

Я сделал то же самое Martin, предложенный в ряде случаев (его блог вне полезного, BTW). Однако я закончил тем, что должен был инициировать каскадные сборки как это (на основе некоторых других сложных правил) достаточно, что я создал пользовательскую задачу сделать это. Сохраните свои сценарии сборки хорошими и склонитесь, и дает Вам еще некоторую гибкость и возможности инкапсуляции.

    public override bool Execute()
    {       
        IBuildDefinition[] buildDefinitions = BuildServer.QueryBuildDefinitions(ProjectName);

        foreach (IBuildDefinition build in buildDefinitions)
        {
            if(build.Enabled) //I did a bunch of custom rules here
            {
                Log.LogMessage(String.Concat("Queuing build: ", build.Name));
                BuildServer.QueueBuild(build);
            }
        }

        return true;
    }

Существует некоторый более хороший материал на блоге Aaron Hallberg также:

http://blogs.msdn.com/aaronhallberg/archive/2007/04/24/team-build-object-model-queueing-a-build.aspx

3
ответ дан 14 December 2019 в 09:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: