Удаление проекта в локальной среде Azure DevOps с помощью TFSDeleteProject

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Проект можно удалить из Azure DevOps Server, если проект больше не требуется с помощью TFSDeleteProject.

Кроме того, если есть компоненты, которые остаются незавершенными после неудачного создания проекта, их можно удалить с помощью TFSDeleteProject.

Чтобы удалить проект из Azure DevOps Services с помощью консоли администрирования, см. статью "Удаление проекта".

Предупреждение

TFSDeleteProject окончательно уничтожает проект, после чего его невозможно восстановить. Перед использованием TFSDeleteProject необходимо создать резервную копию всех важных данных проекта.

Чтобы получить доступ к средству командной строки TFSDeleteProject, откройте окно командной строки, в котором установлен Visual Studio или Team Explorer, и введите:

cd %programfiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE

В 32-разрядном выпуске Windows замените %programfiles(x86)%%programfiles%.

Предварительные требования

Чтобы использовать команду TFSDeleteProject , необходимо быть членом группы безопасности администраторов Team Foundation или группы безопасности "Администраторы проектов ".

Дополнительные сведения см. в разделе "Настройка разрешений администратора для Azure DevOps Server".

TFSDeleteproject [/q] [/force] [/excludewss] /collection:URL TeamProjectName

Параметр

Описание

/q

Необязательный элемент. Использование тихого режима. У пользователя не запрашивается подтверждение.

/force

Необязательный элемент. Указывает, что процесс удаления следует продолжить, даже если удаление некоторых компонентов невозможно.

/excludewss

Необязательный элемент. Указывает, что сайт SharePoint, связанный с проектом, не удаляется. Укажите этот параметр для обслуживания существующего сайта, чтобы другие проекты могли продолжать использовать его.

/collection:URL

Обязательный. Указывает универсальный код ресурса (URI) коллекции проектов. Для универсального кода ресурса (URI) необходимо использовать следующий формат: http://ServerName:Port/VirtualDirectoryName/CollectionName.

Если виртуальный каталог не указан, необходимо использовать следующий формат для универсального кода ресурса (URI): http://ServerName:Port/CollectionName

TeamProjectName

Обязательный. Имя проекта. Если имя содержит пробелы, следует заключить его в кавычки.

Комментарии

При создании проекта Azure DevOps Server создает объекты данных на сервере, на котором размещается Azure DevOps Server, и может создавать объекты данных на сервере, на котором размещены продукты SharePoint, и сервер, на котором размещается SQL Server Reporting Services.

При удалении проекта отчеты автоматически удаляются из SQL Server Reporting Services.

При удалении проекта можно выбрать, следует ли удалять объекты, созданные для поддержки сайта SharePoint.

Однако ошибка может помешать Azure DevOps Server создавать или удалять все объекты. Чтобы устранить эти проблемы, в следующих разделах содержатся справочные сведения, ссылки на другие ресурсы и конкретные действия, которые помогут определить причину проблемы, устранить проблему и при необходимости удалить объекты данных, оставшиеся после запуска TFSDeleteProject.

Процесс TFSDeleteProject

При использовании программы командной строки TFSDeleteProject сначала удаляются данные проекта, а затем веб-сайты проекта.

Этап 1. TFSDeleteProject удаляет данные проекта

На первом этапе TFSDeleteProject автоматически выполняет следующие действия для удаления данных проекта:

  1. TFSDeleteProject создает инвентаризацию всех компонентов, которые являются кандидатами на удаление.

    Сюда входят компоненты, которые интегрируются с диспетчером тестов, сборкой Team Foundation и управлением версиями Team Foundation.

  2. TFSDeleteProject удаляет компонент, отображающий узел проекта в Team Explorer.

  3. TFSDeleteProject помечает сведения об управлении версиями для удаления, но не сразу удаляет эти сведения.

    Эти сведения содержат все ветви системы управления версиями в указанном проекте, но не содержат другие ветви вне этого проекта.

    • Если родительская ветвь и дочерняя ветвь находятся в проекте, TFSDeleteProject помечает как для удаления.
    • Если родительские и дочерние ветви находятся в разных проектах, TFSDeleteProject помечает только указанную ветвь.
    • Если другой проект является ветвью из указанного проекта, TFSDeleteProject помечает только указанный проект. При удалении указанного проекта проект ветви теряется.
  4. TFSDeleteProject немедленно удаляет данные сборки, включая сведения и основные данные, определения сборки, агенты сборки и результаты тестирования, связанные с проектом. Папки размещения сборок программой не удаляются.

    Удалить расположение удаления сборки старого проекта перед созданием проекта, использующего то же расположение удаления сборки, не нужно.

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

    Чтобы обойти эту проблему, обратитесь к разделу "Увеличить Time-Out период", а затем снова запустите TFSDeleteProject.

  5. TFSDeleteProject немедленно удаляет рабочие элементы и поля рабочих элементов, принадлежащие указанному проекту, и удаляет все не общие метаданные.

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

    Чтобы решить эту проблему, см. раздел "Увеличить Time-Out период", а затем снова запустить TFSDeleteProject.

Этап 2. TFSDeleteProject удаляет веб-сайты проекта

На втором этапе TFSDeleteProject удаляет следующие данные:

Важно!

Приведенные ниже действия могут занять много времени, в течение которого производительность сервера может снизиться.

  • TFSDeleteProject использует API-интерфейсы Reporting Services для удаления отчетов на сервере, на котором размещены Reporting Services.
  • TFSDeleteProject удаляет веб-сайт портала проекта с сервера, на котором размещены продукты SharePoint.

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

Примечание

Перед удалением проекта можно убедиться, что Reporting Services и продукты SharePoint используют правильные URL-адреса проекта, проверив параметры портала. Дополнительные сведения см. в разделе "Добавление портала проекта".

Если TFSDeleteProject успешно удаляет все указанные выше элементы данных, оно возвращает сообщение Done.

Чтобы проверить этот результат, см. статью "Проверка удаления компонентов проекта".

Если один или несколько компонентов не удалены, можно повторно запустить TFSProjectDelete с помощью параметра /force, чтобы продолжить процесс удаления, даже если не удается удалить все элементы данных.

При использовании этого параметра TFSDeleteProject пропускает компонент, который он не может удалить, возвращает сообщение об ошибке, удаляет следующий компонент и оставляет метаданные проекта и параметры безопасности без изменений.

Данные, которые могут оставаться незавершенными

Следующие данные могут оставаться в развертывании после успешного завершения TFSDeleteProject:

  • Данные проекта в кубе.

    Данные проекта остаются в кубе до тех пор, пока не будет перестроен куб, служба контроллера хранилища удаляет все исторические данные сборки, удаленные из баз данных Azure DevOps.

  • Сборка файлов и папок.

    Двоичные файлы сборки, файлы журналов сборки и файлы журналов, содержащие результаты тестирования, публикуются во время процесса сборки.

    Расположения этих файлов не удаляются. При необходимости эти файлы можно удалить только вручную.

  • Метаданные отслеживания рабочих элементов, к которым предоставлен общий доступ.

    TFSDeleteProject не удаляет метаданные для отслеживания рабочих элементов, совместно используемых между проектами.

  • Наборы полок управления версиями, содержащие общий код.

    Наборы полок управления версиями не удаляются, если в наборе полок есть код из нескольких проектов.

Проверка удаления проекта

Вы можете проверить успешность удаления проекта, убедившись, что узел проекта больше не отображается в Team Explorer и что его веб-сайт портала проекта и папки отчетов больше не существуют.

  1. Откройте Team Explorer и убедитесь, что проект не отображается как узел проекта.

  2. Откройте Internet Explorer и введите URL-адрес веб-сайта портала проекта. Убедитесь в отсутствии сайта.

  3. В поле адреса Internet Explorer введите URL-адрес веб-сайта служб отчетов, используя один из следующих форматов URL-адресов:

    • http://ReportingServices/Reports
    • http://ReportingServices/Reports_TFSInstance
  4. В диспетчере отчетов нажмите кнопку Показать подробности.

  5. Убедитесь, что папка для удаленного проекта больше не отображается.

    Выберите корневую папку TfsReports, а затем выберите папку с именем коллекции проектов.

    Папки с именем удаленного проекта быть не должно.

  6. Если остались отчеты или веб-сайт, перейдите к следующей процедуре.

Удаление оставшихся компонентов после частичного удаления проекта

Если веб-сайт портала проекта и папка отчетов останутся после удаления проекта, удалите сайт и папку вручную.

  1. Войдите на сервер, на котором размещены Reporting Services для удаленного проекта.

  2. Откройте Internet Explorer и в поле адреса введите URL-адрес веб-сайта служб отчетов, используя один из следующих форматов URL-адресов:

    • http://localhost/Reports
    • http://localhost/Reports_TFSInstance
  3. В диспетчере отчетов нажмите кнопку Показать подробности.

  4. Выберите корневую папку TfsReports, а затем выберите папку с именем коллекции проектов.

  5. Установите флажок для удаленного проекта.

  6. Нажмите кнопку Удалить.

  7. Нажмите кнопку "ОК", чтобы подтвердить удаление папки отчетов для проекта.

  8. Чтобы удалить веб-сайт портала проекта удаленного проекта, см. следующую страницу на веб-сайте Майкрософт:

Создание, изменение и удаление Windows SharePoint Services сайтов.

Увеличение времени ожидания

По умолчанию каждый вызов веб-службы, который вызывает команду TFSDeleteProject для удаления компонента, должен завершиться в течение 10 минут. При наличии шести вызовов этот процесс может занять до часа. Если вы хотите удалить проект, связанный с большим объемом данных, можно временно увеличить этот период ожидания.

Примечание

При увеличении времени ожидания это изменение влияет на все вызовы веб-служб. Чтобы вызовы веб-служб не снижали производительность сервера и не приводили к блокировке пользовательского интерфейса на длительное время, требуется поддерживать время ожидания в пределах 10 минут. Поэтому после удаления проекта следует восстановить 10-минутное значение времени ожидания.

Предварительные требования

Для выполнения перечисленных ниже действий необходимо обладать правами администратора Windows на сервере уровня приложений.

Важно!

Неправильное изменение параметров реестра компьютера может стать причиной его нестабильной работы. Если вы не умеете работать с реестром, не добавляйте, не удаляйте и не изменяйте его записи.

  1. Войдите на сервер уровня приложений.

  2. Нажмите кнопку Пуск, щелкните Выполнить, введите команду regedit и нажмите кнопку ОК.

  3. В области браузера разверните HKEY_ LOCAL_MACHINE:

    • Если сервер работает под управлением 32-разрядной операционной системы, разверните раздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\11.0\TeamFoundation\RequestSettings.
    • Если сервер работает под управлением 64-разрядной операционной системы, разверните раздел HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432\Microsoft\VisualStudio\11.0\TeamFoundation\RequestSettings.
  4. Если ключ TeamFoundation\RequestSettings отсутствует, для его создания выполните следующие действия.

    1. Откройте контекстное меню для TeamFoundation, выберите команду Создать и затем пункт Ключ.
    2. Назовите ключ RequestSettings.
    3. Откройте контекстное меню для RequestSettings, выберите команду Создать и затем пункт Параметр DWORD.
    4. Назовите новое значение DefaultTimeout.
  5. Откройте контекстное меню для DefaultTimeout и выберите команду Изменить.

  6. В поле Значение введите время ожидания в миллисекундах и выберите Десятичное.

    Например, чтобы увеличить время ожидания до 30 минут, введите 1800000. Чтобы восстановить прежнее 10-минутное время ожидания, введите 600000.

  7. Нажмите кнопку ОК.

  8. В меню Файл выберите пункт Выход.

Пример

Следующая команда удаляет все компоненты, связанные с магазином проекта, на сервере Azure DevOps Server AdventureWorks1 в коллекции проектов Collection1 и из Team Explorer.

TFSDeleteProject /force /collection:http://AdventureWorks1:8080/tfs/Collection1 StoreFront