Использование TFSDeleteProject для удаления проекта в локальной среде Azure DevOps

Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 — TFS 2013

Примечание

Предложение Azure DevOps Server раньше называлось Visual Studio Team Foundation Server.

Можно удалить проект из 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/ИмяВиртуальногоКаталога/CollectionName

Если виртуальный каталог не задается, для URI нужно использовать следующий формат:

http://ServerName: порт/CollectionName.

Имя_командного_проекта

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

Примечания

При создании проекта 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 помечает только указанный проект. При удалении указанного проекта проект ветви теряется.
  4. TFSDeleteProject немедленно удаляет данные сборки, включая сведения и основные данные, определения сборки, агенты сборки и результаты тестирования, связанные с проектом. Папки размещения сборок программой не удаляются. Нет необходимости удалять расположение сброса сборки старого проекта перед созданием проекта, использующего то же расположение сброса сборки.

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

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

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

Этап 2. Удаление веб-сайтов проекта в TFSDeleteProject

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

Важно!

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

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

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

    Примечание

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

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

Если один или несколько компонентов не удаляются, можно повторно запустить Тфспрожектделете с помощью параметра/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