Usar TFSDeleteProject para excluir um projeto no Azure DevOps local

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

Você pode remover um projeto de Azure DevOps Server quando o projeto não for mais necessário usando TFSDeleteProject.

Além disso, se houver componentes que permanecem sem exclusão após uma criação malsucedida do projeto, você poderá usar TFSDeleteProject para removê-los.

Para excluir um projeto de Azure DevOps Services usando o console de administração, consulte Excluir um projeto.

Aviso

TFSDeleteProject destrói permanentemente o projeto, após o qual ele não pode ser recuperado. Você deve fazer backup de todos os dados importantes do projeto antes de usar TFSDeleteProject.

Para acessar a ferramenta de linha de comando TFSDeleteProject, abra uma janela do Prompt de Comando em que o Visual Studio ou o Team Explorer está instalado e insira:

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

Em uma edição de 32 bits do Windows, substitua %programfiles(x86)% por %programfiles%.

Pré-requisitos

Para usar o comando TFSDeleteProject , você deve ser membro do grupo de segurança Administradores do Team Foundation ou do grupo de segurança Administradores do Projeto .

Para obter mais informações, consulte Definir permissões de administrador para Azure DevOps Server.

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

Opção

Descrição

/q

Opcional. Use o modo silencioso. Não solicite confirmação ao usuário.

/force

Opcional. Especifica que o processo de exclusão deve continuar mesmo que alguns componentes não possam ser excluídos.

/excludewss

Opcional. Especifica não excluir o site do SharePoint associado ao projeto. Especifique essa opção para manter o site existente para que outros projetos possam continuar usando-o.

/collection:URL

Obrigatórios. Especifica o URI da coleção de projetos. Você deve usar o seguinte formato para o URI: http://ServerName:Port/VirtualDirectoryName/CollectionName.

Se você não especificar um diretório virtual, deverá usar o seguinte formato para o URI: http://ServerName:Port/CollectionName.

TeamProjectName

Obrigatórios. O nome do projeto. Se o nome incluir espaços, coloque-o entre aspas.

Comentários

Quando você cria um projeto, Azure DevOps Server cria objetos de dados no servidor que hospeda Azure DevOps Server e pode criar objetos de dados no servidor que hospeda produtos do SharePoint e no servidor que hospeda SQL Server Reporting Services.

Quando você remove um projeto, os relatórios são removidos automaticamente do SQL Server Reporting Services.

Ao remover um projeto, você pode escolher se deseja ou não remover os objetos que foram criados para dar suporte ao site do SharePoint.

No entanto, um erro pode impedir que Azure DevOps Server crie ou exclua todos os objetos. Para solucionar esses problemas, as seções a seguir fornecem informações em segundo plano, links para outros recursos e etapas específicas que ajudam a determinar a causa do problema, corrigir o problema e, quando necessário, excluir objetos de dados que permanecem após a execução de TFSDeleteProject.

Processo TFSDeleteProject

Quando você usa a ferramenta de linha de comando TFSDeleteProject, ela primeiro exclui os dados do projeto e, em seguida, os sites do projeto.

Fase 1: TFSDeleteProject exclui dados do projeto

Na primeira fase, o TFSDeleteProject executa automaticamente as seguintes etapas para remover dados do projeto:

  1. TFSDeleteProject cria um inventário de todos os componentes que são candidatos à exclusão.

    Isso inclui componentes que se integram ao Gerenciador de Testes, ao Team Foundation Build e ao controle de versão do Team Foundation.

  2. TFSDeleteProject exclui o componente que exibe o nó do projeto no Team Explorer.

  3. TFSDeleteProject sinaliza as informações de controle de versão para exclusão, mas não exclui imediatamente essas informações.

    As informações incluem todos os branches de controle de versão no projeto especificado, mas nenhum outro branche fora do projeto.

    • Se um branch pai e um branch filho estiverem no projeto, TFSDeleteProject sinaliza ambos para exclusão.
    • Se os branches pai e filho estiverem em projetos diferentes, TFSDeleteProject sinalizará apenas o branch especificado.
    • Se outro projeto for um branch do projeto especificado, TFSDeleteProject sinaliza apenas o projeto especificado. Quando o projeto especificado é excluído, o projeto de ramificação se torna órfão.
  4. O TFSDeleteProject exclui imediatamente os dados de build, incluindo informações e dados principais, definições de build, agentes de build e resultados de teste associados ao projeto. A ferramenta não exclui locais de descarte de build.

    Você não precisa excluir o local de remoção de build de um projeto antigo antes de criar um projeto que usa o mesmo local de descarte de build.

    Se o projeto especificado contiver uma grande quantidade de dados de build, a exclusão poderá não ser concluída dentro do período de tempo limite.

    Para solucionar esse problema, consulte Aumentar o período de Time-Out e, em seguida, execute TFSDeleteProject novamente.

  5. TFSDeleteProject exclui imediatamente itens de trabalho e campos de item de trabalho que pertencem ao projeto especificado e exclui todos os metadados não compartilhados.

    Se o projeto especificado contiver uma grande quantidade de dados de item de trabalho, a exclusão poderá não ser concluída dentro do período de tempo limite.

    Para resolver esse problema, consulte Aumentar o período de Time-Out e, em seguida, executar TFSDeleteProject novamente.

Fase 2: TFSDeleteProject exclui sites de projeto

Na segunda fase, TFSDeleteProject exclui os seguintes dados:

Importante

Essas etapas podem levar muito tempo para serem concluídas e, durante esse tempo, podem prejudicar o desempenho do servidor.

  • TFSDeleteProject Usa as APIs Reporting Services para excluir relatórios no servidor que hospeda Reporting Services.
  • TFSDeleteProject Exclui o site do portal do projeto do servidor que hospeda produtos do SharePoint.

Essa etapa ocorrerá somente se o projeto possuir o site e a exclusão do site não for excluída na linha de comando. (Considere que vários projetos podem apontar para um único site, mas apenas um deles pode ser o proprietário em que os relatórios/painéis estão por padrão usando este projeto).

Observação

Antes de excluir um projeto, você pode confirmar que Reporting Services e Produtos do SharePoint estão usando as URLs de projeto corretas verificando as configurações do portal. Para obter mais informações, consulte Adicionar um portal de projeto.

Se TFSDeleteProject excluir com êxito todos os elementos de dados acima, ele retornará a mensagem Concluído.

Para verificar esse resultado, consulte Verificar se os componentes do projeto foram excluídos.

Se um ou mais componentes não forem removidos, você poderá executar novamente TFSProjectDelete usando a opção /force para continuar o processo de exclusão mesmo que não seja possível excluir todos os elementos de dados.

Com essa opção TFSDeleteProject, ignora um componente que não pode excluir, retorna uma mensagem de erro, exclui o próximo componente e deixa os metadados do projeto e as configurações de segurança intactos.

Dados que podem permanecer indeletados

Os seguintes dados podem permanecer na implantação após a conclusão bem-sucedida do TFSDeleteProject:

  • Projetar dados no cubo.

    Os dados do projeto permanecem no cubo até que o cubo seja recriado, momento em que o serviço de controlador de warehouse remove todos os dados históricos de build que foram excluídos dos bancos de dados do Azure DevOps.

  • Compilar arquivos e pastas suspensos.

    Binários de build, arquivos de log de build e arquivos de log que contêm resultados de teste são publicados durante o processo de build.

    Os locais desses arquivos não são excluídos. Se você quiser remover esses arquivos, remova-os manualmente.

  • Metadados de acompanhamento de item de trabalho compartilhados.

    O TFSDeleteProject não exclui nenhum metadado para o acompanhamento de item de trabalho compartilhado entre projetos.

  • Conjuntos de prateleiras de controle de versão que contêm código compartilhado.

    Os conjuntos de prateleiras de controle de versão não serão excluídos se houver código no conjunto de prateleiras de vários projetos.

Verificar a exclusão do projeto

Você pode verificar o êxito de uma exclusão de projeto confirmando que o nó do projeto não aparece mais no Team Explorer e que o site do portal do projeto e as pastas de relatórios não existem mais.

  1. Abra o Team Explorer e verifique se o projeto não aparece como um nó de projeto.

  2. Abra o Explorer da Internet e digite a URL do site do portal do projeto. Verifique se o site não existe mais.

  3. Na Internet Explorer, na caixa Endereço, digite a URL do site Reporting Services usando um dos seguintes formatos de URL:

    • http://ReportingServices/Reports
    • http://ReportingServices/Reports_TFSInstance
  4. No Gerenciador de Relatórios, escolha Mostrar Detalhes.

  5. Verifique se a pasta do projeto excluído não é mais exibida.

    Escolha a pasta raiz TfsReports e escolha a pasta nomeada para a coleção de projetos.

    Não deve mais haver uma pasta com o nome do projeto excluído.

  6. Se os relatórios ou o site permanecerem, consulte o próximo procedimento.

Remover componentes restantes após a exclusão parcial do projeto

Se o site do portal do projeto e a pasta de relatórios permanecerem depois que você excluir um projeto, remova o site e a pasta manualmente.

  1. Faça logon no servidor que hospeda Reporting Services para o projeto que você excluiu.

  2. Abra o Explorer da Internet e, na caixa Endereço, digite a URL do site do Reporting Services usando um dos seguintes formatos de URL:

    • http://localhost/Reports
    • http://localhost/Reports_TFSInstance
  3. No Gerenciador de Relatórios, escolha Mostrar Detalhes.

  4. Escolha a pasta raiz TfsReports e escolha a pasta nomeada para a coleção de projetos.

  5. Selecione a caixa de marcar do projeto que foi excluído.

  6. Clique em Excluir.

  7. Escolha OK para confirmar que você deseja excluir a pasta de relatórios do projeto.

  8. Para remover o site do portal do projeto de um projeto excluído, consulte a seguinte página no site da Microsoft:

Criar, editar e excluir sites Windows SharePoint Services.

Aumentar o período de tempo limite

Por padrão, cada chamada de serviço Web que o comando TFSDeleteProject emite para excluir um componente deve ser concluída dentro de 10 minutos. Se houver seis chamadas, o processo poderá levar até uma hora. Se você quiser excluir um projeto associado a uma grande quantidade de dados, poderá aumentar temporariamente esse período de tempo limite.

Observação

Quando você aumenta o período de tempo limite, a alteração afeta todas as chamadas de serviço Web. Em geral, você deseja manter o período de tempo limite dentro de 10 minutos para impedir que as chamadas de serviço Web degradem o desempenho do servidor e fazer com que os usuários sejam impedidos de usar a interface do usuário por longos períodos de tempo. Portanto, depois que o projeto for excluído com êxito, você deverá alterar o período de tempo limite de volta para 10 minutos.

Pré-requisitos

Para concluir esses procedimentos, você deve ser um Administrador do Windows no servidor da camada de aplicativo.

Importante

Modificar incorretamente o registro do computador pode fazer com que o computador se torne instável. Se você não estiver familiarizado com o registro, não deverá adicionar nem remover entradas ou modificá-lo de forma alguma.

  1. Faça logon no servidor da camada de aplicativo.

  2. Escolha Iniciar, Executar, digite regedit e escolha OK.

  3. No painel do navegador, expanda HKEY_ LOCAL_MACHINE:

    • Se o servidor executar um sistema operacional de 32 bits, expanda: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\11.0\TeamFoundation\RequestSettings.
    • Se o servidor executar um sistema operacional de 64 bits, expanda: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432\Microsoft\VisualStudio\11.0\TeamFoundation\RequestSettings.
  4. Se a chave TeamFoundation\RequestSettings não existir, siga estas etapas para criá-la:

    1. Abra o menu de contexto teamFoundation, aponte para Novo e escolha Chave.
    2. Nomeie a chave RequestSettings.
    3. Abra o menu de contexto para RequestSettings, aponte para Novo e escolha Valor DWORD.
    4. Nomeie o novo valor DefaultTimeout.
  5. Abra o menu de contexto para DefaultTimeout e escolha Modificar.

  6. Em Dados de Valor, digite o período de tempo limite em milissegundos e escolha Decimal.

    Por exemplo, para aumentar o período de tempo limite para 30 minutos, digite 1800000. Para alterar o período de tempo limite de volta para 10 minutos, digite 600000.

  7. Escolha OK.

  8. No menu Arquivo, escolha Sair.

Exemplo

O comando a seguir remove todos os componentes associados ao projeto StoreFront no servidor Azure DevOps Server AdventureWorks1 na coleção de projetos Collection1 e do Team Explorer.

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