O arquivo do projeto foi renomeado ou não está no seu computador

150

Eu recebo esse erro quando tento carregar um projeto do VS 2008 a partir do controle de origem TFS:

O arquivo do projeto foi movido, renomeado ou não está no seu computador

Depois de clicar em OK, o projeto diz "indisponível". Qual é o problema? Como eu resolvo isso? Eu nunca tive esse problema antes. Alguns blogs disseram para excluir o arquivo .suo, mas não consigo localizar o arquivo .suo. Excluí o projeto inteiro no meu computador local para que, na próxima vez em que for aberto, crie um novo, mas ainda recebo o mesmo erro.

sineas
fonte
28
Oh, como eu odeio o TFS por me dar essas dores de cabeça!
John Leidegren
2
Desça, você encontrará a resposta correta aqui.
Claudius

Respostas:

270

O que normalmente ajuda a corrigi-lo é excluir as Opções do Usuário da Solução, também conhecidas como "SUO".

VS até 2013

No VS antigo, ele é armazenado como um "oculto" SolutionName.suona mesma pasta que o .slnarquivo principal .

VS2015 ou posterior

No VS2015, os mesmos dados foram movidos para uma .vspasta "oculta" na mesma pasta que o .slnarquivo principal .

Stanley.Goldman
fonte
6
+1. Mensagem de erro muito infeliz - é mais provável que surja quando você moveu os arquivos da maneira "correta", de acordo com o seu provedor de SCC. (por exemplo, usando 'tf rename' para TFS) Mover o projeto no disco sem informar ao TFS ou esquecer de atualizar um arquivo sln / csproj resultará em diferentes mensagens de erro na minha experiência. Os arquivos SUO são opacos, então você fica coçando a cabeça até fazer uma limpeza geral / queimar.
Richard Berg
8
Ele salvar meu dia;)
Kamil Lach
44
Não se esqueça de reiniciar o Visual Studio após a exclusão do arquivo .suo
orandov
8
Oh Então agora o arquivo .suo está oculto. Por quê? Eu sei porque. Estamos desenvolvedores e não são, obviamente, capaz de lidar com a complexidade adicional com vendo o arquivo .suo a céu aberto ;-)
Torben Rahbek Koch
29
Isso também funciona no Visual Studio 2015, embora o caminho para o arquivo .suo tenha sido alterado para <SolutionFolder> \ .vs \ <SolutionName> \ v14 \ .suo.
Greg M.
38

Acabei de encontrar esse problema usando o VS 2013 após renomear um projeto. A resposta de Stanley me guiou para a solução:

Feche o VS - exclua o arquivo .suo - inicie o VS novamente.

AndreasV
fonte
1
Eu posso estar errado, mas acho que nem vi o arquivo .SUO até fechar o VisualStudio.
Michael R
5
Só quero adicionar - imperativo que você feche o VS antes de excluí-lo. Excluir o arquivo enquanto o VS ainda estiver aberto, fechar e reabrir não tem efeito. Deve fechar primeiro!
Wizloc 6/11/15
23

Exclua o arquivo .suo de uma maneira especial.

  1. Não tenha a solução aberta ao excluir o arquivo .suo oculto.
  2. Reinicie o VisualStudio.
  3. Abra a solução e adicione projeto sem mensagem de erro.
Mikhael Loo
fonte
Trabalhou para mim Visual Studio 2019. Somente que você exclui a .vspasta oculta
user919426 28/04
11

O TFS funciona como a maioria dos pacotes de controle de código-fonte: ele se lembra do que foi colocado no seu computador, para que, quando você "Recebe as últimas", só precise receber os chnages desde o último "Get", em vez de ter que obter absolutamente tudo.

Isso tem uma ressalva: se você excluir ou renomear os arquivos locais no disco, o TFS não saberá que você fez isso e continuará pensando que eles estão onde os deixou.

Se você "Obter as últimas", não será necessário atualizar os arquivos ausentes.

É provável que você obtenha todos os tipos de erros de "arquivo ausente", do TFS e de outras ferramentas que os procurem.

Para contornar isso, você precisa:

  • Se você acha que pode ter alguma alteração que não queira perder, copie a pasta de origem no seu PC como backup, apenas por precaução!
  • Clique com o botão direito do mouse no projeto (no Solution Explorer) ou na pasta (no Source Control)
  • Escolha "Obter versão específica" no menu de contexto
  • Escolha obter a "Versão mais recente" e marque a opção que diz (algo como) "forçar a obtenção de arquivos já no seu espaço de trabalho", o que instrui o TFS a esquecer o que "sabe" e obter todos os arquivos novamente de qualquer maneira.

Se você tiver arquivos (graváveis) alterados localmente, tenha cuidado. Existe uma segunda opção que as substituirá, perdendo suas alterações. Mas você tem o backup, portanto, você deve estar seguro. Geralmente, é melhor marcar esta opção também para garantir que todo o seu código-fonte esteja completamente atualizado. (Mas, obviamente, apenas se você não se importar em perder as alterações locais!)

Quando você OK, isso forçará todos os arquivos do projeto para a unidade local e deverá corrigir o problema.

Jason Williams
fonte
"obtive uma versão específica" e verifiquei "substituir todos os arquivos, mesmo que o servidor de correspondência local". nenhum erro, mas nada entrou. Eu verifiquei em outro computador e o projeto está no TFS e a outra pessoa pode funcionar bem nele.
sineas
Aliás, minha pasta de origem local é completamente VAZIA. Não há nada nele. Eu apaguei todos os arquivos inicialmente para poder obter todos os novos. como abrir um novo projeto.
sineas
1
Nesse caso, a próxima coisa que eu verificaria seria o mapeamento do espaço de trabalho. No Team Explorer, clique duas vezes no ícone Source Control e, na parte superior da janela que aparece, é uma caixa de combinação suspensa. Solte isso e escolha "adicionar / editar áreas de trabalho". Edite sua área de trabalho e verifique se o projeto TFS que contém seu código tem uma pasta correspondente no disco rígido local. E verifique se você está olhando para esta pasta ao tentar carregar a solução. (Dica: Compare sua configuração para os outros do desenvolvedor que trabalha para tentar rastrear a origem do problema)
Jason Williams
9

Embora seja bem conhecido o defeito do VS, definitivamente podemos lidar com isso!

  • Abra o arquivo de solução no modo de edição

  • Modifique o caminho relativo para corresponder ao caminho físico modificado / movido.

    SccProjectUniqueName1 = Source\\Order\\Order.csproj
    SccProjectName1 = Order.ApplicationService
    SccLocalPath1 = Order.ApplicationService
    
  • Além disso, verifique o caminho relativo correto para o (s) projeto (s) de referência

    Project("{asdasd-301F-11D3-BF4B-asdasd}") = "Order",
            "Source\Order\Order.csproj", "{E25641BC-C990-40E2-8876-08AE8728F763}"
    EndProject
    
sandeep talabathula
fonte
6

Tente abrir o arquivo .csproj ou .vbproj em vez do .sln. O que provavelmente aconteceu foi que o arquivo .sln (solução) possui uma referência absoluta (em vez de um caminho relativo) ao (s) projeto (s) componente (s). Pode ser necessário recriar o .sln ou editá-lo manualmente.

Lilith River
fonte
Eu tentei abrir o arquivo .vbproj e é isso que eu recebo. "O arquivo selecionado não pode ser aberto como uma solução ou projeto. Por favor, selecione um arquivo de solução ou um arquivo de projeto" e também como recriar o arquivo .sln. Eu sou novo nisso. obrigado
sineas
Obrigado! Abriu os arquivos csproj, na saída, ele pediu para criar / salvar um novo arquivo .sln e substituiu o antigo!
Rafael
5

A opção mais fácil elaborada para mim é:

  1. Clique com o botão direito do mouse no projeto e remova o projeto "não carregado" ou "indisponível"
  2. Clique com o botão direito do mouse na solução e adicione "Projeto Existente"
Arun Vinoth
fonte
Eu tentei isso, mas ainda assim o mesmo erro, não suporto esse erro estúpido (realmente um bug, não posso aceitar esse tipo de bug desagradável, extremamente confuso).
29319 Hopeless
1
Simples e direto ... entendi.
Sarath Mohandas
3

No meu caso, excluir o arquivo .suo era insuficiente. Descobri que minha configuração do espaço de trabalho tinha um erro. Descobri e resolvi o problema com estas etapas:

  1. No Team Explorer, "Gerenciar áreas de trabalho ..."

    insira a descrição da imagem aqui

  2. Clique em "Editar ..."

    insira a descrição da imagem aqui

  3. Corrija o valor em "Pasta local"

    insira a descrição da imagem aqui

  4. Por fim, exclua os arquivos .suo afetados pela resposta aceita.

Chris Schiffhauer
fonte
2

Eu achei mais fácil criar um novo arquivo Solution sln.

David
fonte
1

Limpe os mapeamentos da área de trabalho (Arquivo -> Controle de Origem -> Áreas de Trabalho). Edite a área de trabalho e limpe todos os mapeamentos (mais repercussão) ou encontre o que está associado a esse caminho do servidor. Em seguida, abra o Source Control Explorer e remapear. Clique duas vezes no SLN no Source Control Explorer e ele deve ser atualizado. Não tem muita certeza do que aconteceu ou em que estado você conseguiu entrar, mas com isso você deve se mover novamente.

Ryan Cromwell
fonte
1

Eu corri para esse problema e consegui resolvê-lo, obtendo os .rptprojarquivos de um colega de trabalho e copiando-os para o meu diretório local. O projeto foi capaz de recarregar.

Sayward
fonte
1

Passei muito tempo tentando resolver esse problema. Executei estas etapas: renomear projeto, renomear namespaces, renomear pasta de projeto, editar arquivo .sln, editar arquivo .suo oculto. Projeto carregado, mas irreconhecível para o TFS! Finalmente encontrei este guia .

Se você estiver usando o Resharper e o TFVC é seu controle de versão, siga estas etapas:

  • Clique com o botão direito do mouse no projeto no Solution Explorer, selecione Renomear e insira o novo nome

  • Clique com o botão direito do mouse no projeto novamente e selecione Propriedades. Altere o "Nome do assembly" e "Espaço para nome padrão" na guia Aplicativo.

  • Clique com o botão direito do mouse no projeto novamente e selecione Refatorar -> Ajustar namespaces. Aceite as alterações.

  • Alterar o AssemblyTitle e AssemblyProduct em Properties / AssemblyInfo.cs

  • Excluir diretórios bin e obj no Windows Explorer

  • Abra o Source Control Explorer e renomeie o diretório do projeto. Isso fechará a solução. Deixe ser fechado.

  • Abra o arquivo SLN (com um editor de texto como o Notepad ++) e altere o caminho para o projeto (deve haver vários locais).

  • Abra a solução novamente. Limpe e reconstrua o projeto.

abdômen
fonte
0

Clique com o botão direito do mouse no projeto indisponível e edite o arquivo do projeto ... é provável que você encontre um caminho de arquivo codificado permanentemente ou um virtual que não corresponda ao local do check-out do projeto.

Bondade,

Dan

Daniel Elliott
fonte
2
não tem a opção Editar. seu único projeto de recarga, recorte e remova.
sineas
0

Solução para este

  1. Renomeie novamente a pasta do projeto
  2. Definir versão específica e forçar a entrada no TFS
  3. remova a opção somente leitura e oculta na pasta mais recente (não a renomeada)
  4. Agora você pode abrir o projeto sem problemas
Saman Jayatilake
fonte
0

Às vezes, mesmo que você mudou .slne .csprojcaminho, e renomear manualmente, você pode esquecer de verificar o nome da pasta que contém o projeto.

SMPH
fonte