Compartilhar via


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 do Servidor do Azure DevOps quando o projeto não for mais necessário usando TFSDeleteProject.

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

Para excluir um projeto do 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 e insira:

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

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 o servidor do Azure DevOps.

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.

/forçar

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ório. 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

Necessário. O nome do projeto. Se o nome incluir espaços, coloque-o entre aspas.

Observações

Quando você cria um projeto, o Servidor do Azure DevOps cria objetos de dados no servidor que hospeda o Servidor do Azure DevOps e pode criar objetos de dados no servidor que hospeda produtos do SharePoint e o servidor que hospeda o 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 o Servidor do Azure DevOps 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 você 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 ramos de controle de versão do projeto especificado, mas nenhum outro ramo fora do projeto.

    • Se um branch pai e um branch filho estiverem no projeto, TFSDeleteProject marca ambos para exclusão.
    • Se as branches pai e filho estiverem em projetos diferentes, o TFSDeleteProject marca apenas a branch especificada.
    • 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 descarte 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, execute TFSDeleteProject novamente.

Fase 2: TFSDeleteProject exclui sites do projeto

Na segunda fase, TFSDeleteProject exclui os seguintes dados:

Importante

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

  • TFSDeleteProject usa as APIs do Reporting Services para excluir relatórios no servidor que hospeda o 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/dashboards estão por padrão usando este projeto).

Nota

Antes de excluir um projeto, você pode confirmar que o Reporting Services e o SharePoint Products 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 implementação após a conclusão bem-sucedida do TFSDeleteProject:

  • dados do projeto no cubo.

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

  • Construir arquivos e pastas de descarte.

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

    As localizações desses arquivos não são excluídas. Se você quiser remover esses arquivos, será necessário removê-los manualmente.

  • Metadados compartilhados de acompanhamento de item de trabalho.

    TFSDeleteProject não exclui qualquer metadado referentes à rastreabilidade de itens de trabalho compartilhados entre projetos.

  • conjuntos de prateleiras de controle de versão que contêmde código compartilhado.

    Os shelvesets de controle de versão não serão excluídos se houver código no shelveset 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 Internet Explorer e digite a URL do site do portal do projeto. Verifique se o site não existe mais.

  3. No Internet Explorer, na caixa Endereço, digite a URL do site do 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 aparece mais.

    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 procedimento seguinte.

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

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

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

  2. Abra o Internet Explorer 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. Marque a caixa de seleção do projeto que foi excluído.

  6. Escolha Excluir.

  7. Escolha OK para confirmar se 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 do Windows SharePoint Services.

Aumentar o período de tempo limite

Por padrão, cada chamada de serviço Web que o comando TFSDeleteProject faz para excluir um componente precisa ser concluída em até 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.

Nota

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 em até 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 para 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 6000000.

  7. Escolha OK.

  8. No menu Arquivo, escolha Sair.

Exemplo

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

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