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

Azure DevOps Server 2022 г. | Azure DevOps Server 2020 г. | Azure DevOps Server 2019 г.

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

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

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

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

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

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

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

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

/Силы

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

/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 Обозреватель.

  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-адреса проекта, проверив параметры портала. Дополнительные сведения см. в статье Добавление портала project.

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

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

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

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

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

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

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

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

  • Удаление файлов и папок сборки.

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

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

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

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

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

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

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

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

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

  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. В меню Файл выберите пункт Выход.

Пример

Следующая команда удаляет все компоненты, связанные с проектом StoreFront, на сервере Azure DevOps Server AdventureWorks1 в коллекции проектов Collection1 и из team Обозреватель.

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