Поделиться через


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

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

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

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

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

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

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

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

cd %programfiles%\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\TfsDeleteProject.exe

Предпосылки

Чтобы использовать команду 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 создает инвентаризацию всех компонентов, которые являются кандидатами на удаление.

    К ним относятся компоненты, которые интегрируются с Test Manager, Team Foundation Build и управлением версиями 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-адрес веб-сайта служб Reporting Services, используя один из следующих форматов URL-адресов:

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

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

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

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

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

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

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

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

  2. Откройте Internet Explorer и в поле "Адрес" введите URL-адрес веб-сайта служб Reporting Services, используя один из следующих форматов 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. В меню "Файл" нажмите кнопку "Выйти".

Пример

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

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