Partilhar via


Usar TFSDeleteProject para excluir um projeto no Azure DevOps local

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

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

Além disso, se houver componentes que permanecem não excluídos após a criação de um projeto malsucedido, você pode usar TFSDeleteProject para removê-los.

Para excluir um projeto dos Serviços de DevOps do Azure usando o console de administração, consulte Excluir um projeto.

Advertência

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

Para acessar a ferramenta de linha de comando TFSDeleteProject, abra uma janela do Prompt de Comando e digite:

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 de Projeto .

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

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

Opção

Descrição

/q

Opcional. Use o modo silencioso. Não solicite a confirmação do 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 para 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 a usá-lo.

/recolha: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

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

Observações

Quando você cria um projeto, o Servidor de DevOps do Azure cria objetos de dados no servidor que hospeda o Servidor de DevOps do Azure e pode criar objetos de dados no servidor que hospeda Produtos do SharePoint e no 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 Azure DevOps Server crie ou exclua todos os objetos. Para solucionar esses problemas, as seções a seguir fornecem informações básicas, 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 do 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 os dados do projeto:

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

    Isso inclui componentes que se integram com o Test Manager, Team Foundation Build e 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 todas as ramificações de controle de versão no projeto especificado, mas nenhuma outra ramificação fora do projeto.

    • Se tanto uma ramificação pai quanto uma ramificação filha estiverem no projeto, o TFSDeleteProject sinalizará ambas para eliminação.
    • Se as ramificações pai e filho estiverem em projetos diferentes, o TFSDeleteProject sinalizará apenas a ramificação especificada.
    • Se outro projeto for uma ramificação do projeto especificado, TFSDeleteProject sinalizará apenas o projeto especificado. Quando o projeto especificado é excluído, o projeto de ramificação torna-se órfão.
  4. O TFSDeleteProject exclui imediatamente os dados de compilação, incluindo informações e dados principais, definições de compilação, agentes de compilação e resultados de teste associados ao projeto. A ferramenta não exclui locais de descarte de compilação.

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

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

    Para contornar 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 pode 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, podem degradar 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.

Esta etapa ocorre somente se o projeto for proprietário do 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 onde os relatórios/painéis estão por padrão usando este projeto).

Observação

Antes de excluir um projeto, você pode confirmar se o Reporting Services e o 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 Done.

Para verificar esse resultado, consulte Verificar se os componentes do projeto são 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 não ser apagados

Os seguintes dados podem permanecer na implantaçã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 reconstruído, momento em que o serviço controlador de depósito remove todos os dados históricos de compilação que foram excluídos dos bancos de dados do Azure DevOps.

  • Crie arquivos e pastas de arrastar e largar.

    Binários de compilação, arquivos de log de compilação e arquivos de log contendo resultados de teste são publicados durante o processo de compilação.

    Os locais desses arquivos não são apagados. Se você quiser remover esses arquivos, você deve removê-los manualmente.

  • Metadados de acompanhamento de item de trabalho que são compartilhados.

    TFSDeleteProject não elimina nenhum metadados de rastreamento de itens de trabalho que são partilhados entre projetos.

  • Prateleiras de controle de versão contendo código compartilhado.

    Os shelvesets de controlo de versão não são excluídos se houver código de vários projetos num único shelveset.

Verificar a exclusão do projeto

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

  1. Abra o Team Explorer e verifique se o projeto não aparece como um nó do 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, em seguida, escolha a pasta nomeada para a coleção de projetos.

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

  6. Se os relatórios ou o site persistirem, veja 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 o Reporting Services para o projeto excluído.

  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, em seguida, 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 que 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:

Crie, edite e exclua 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 emite para excluir um componente deve ser concluída em 10 minutos. Se houver seis chamadas, o processo pode levar até uma hora. Se quiser excluir um projeto associado a uma grande quantidade de dados, você pode 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 em até 10 minutos para evitar que as chamadas de serviço Web degradem o desempenho do servidor e façam 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ê deve 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 de camada de aplicativo.

Importante

Modificar incorretamente o registro do seu computador pode fazer com que ele se torne instável. Se não estiver familiarizado com o registo, não deve adicionar ou remover entradas, nem modificá-lo de qualquer forma.

  1. Faça logon no servidor de 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 do 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 do 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 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