Aviso do Visual Studio: "Não foi possível ler algumas das propriedades associadas à solução"

160

Quando abro minha solução, recebo uma caixa de diálogo com este aviso. A solução (um aplicativo Web, um projeto de classe) é criada sem erros.

Como posso determinar quais propriedades estão causando o problema e resolver o erro?

chris
fonte

Respostas:

281

Corrigi um problema semelhante com uma solução VS2010 com 35 projetos ... A causa foi uma duplicação

GlobalSection(TeamFoundationVersionControl)

seção no arquivo de solução. Fechei a solução, removi a configuração duplicada do GlobalSection (TeamFoundationVersionControl) e recarreguei a solução e a mensagem de aviso desapareceu.

Se esse não é o problema para você, considerando que você tem apenas dois projetos, eu descartaria o arquivo da solução interrompida, crie uma solução nova e adicione novamente seus dois projetos ...

Boycs
fonte
6
Teve o mesmo problema com o VS2012, esta solução funcionou. Obrigado!
precisa saber é o seguinte
4
É seguro assumir que o GlobalSection (TeamFoundationVersionControl) que deve ser excluído é o mais baixo?
frostshoxx
4
Eu tive o mesmo problema e acabei de remover o inferior. Resolveu o problema. Parece que a fusão às vezes causa isso.
MaiOM
12
Foi o último para mim (estava claramente desatualizado). Suspeito que o VS use o primeiro que encontrar. No meu caso, isso foi causado por uma mesclagem de TFS.
Igby Largeman
2
O mesmo problema no VS2013 com o GlobalSection duplicado - corrigido removendo
Mark Hosang
31

Parece que há vários motivos para esse aviso. Eu estava recebendo porque meu arquivo de solução SccNumberOfProjects = 4quando havia apenas 3.

bicbmx
fonte
25

A melhor solução é forçar o VS a regenerar as configurações. Para fazer isso:

  1. Abra o arquivo sln com um editor de texto.
  2. Role para baixo até chegar ao último elemento "EndProject".
  3. Exclua tudo depois disso.
  4. Salve, feche e reconstrua a solução e tudo será regenerado.
Arvand
fonte
Esta solução foi perfeita para a minha situação. Eu estava recebendo dois erros semelhantes: The following property is missing or has incorrect value: SccLocalPath63e The following property is missing or has incorrect value: SccLocalPath64
user919426
2
Esta solução funcionou para mim no VS 2017. Na verdade, ela gera novamente quando o arquivo sln é aberto. Observe que EndProject é uma palavra.
Varun Sharma
Essa foi a solução para mim. A única diferença no arquivo da solução foi o SolutionGuid.
ADH
2
Isso funcionou para mim no VS 2017. a única coisa que tenho a acrescentar é ... se você estiver usando o Solution Folders ... terá que colocar seus projetos de volta nos "slots" corretos
Prisioner ZERO
1
Isso funcionou para mim no VS 2019. Eu tinha seções duplicadas conforme mencionado em outras soluções, mas quando as removia, elas voltavam. Este foi o único que funcionou.
fehays
8

Corrigi um problema semelhante no VS2012 com 44 projetos.

A causa foi uma combinação de uma GlobalSection(TeamFoundationVersionControl)seção duplicada (a resposta de la Boycs), mas eu também tive vários projetos duplicados - assim como algumas referências a projetos que foram removidos recentemente - dentro doGlobalSection(TeamFoundationVersionControl) seção que mantinha.

Depois de garantir que todos os projetos referenciados correspondessem 1: 1 aos projetos reais em minha solução, o aviso foi embora.

Além disso: suspeito que a maioria desses problemas poderia ter sido evitada com mais atenção ao .sln durante a ramificação e a consolidação de fusões, mas quem sabe o que o VS está pensando às vezes ...

Ben Mosher
fonte
5

Eu tive uma infinidade dos erros acima. Renomeei o projeto, salvei fechado, reabrei e mudei o nome de volta. Isso recria o arquivo .sln e, no meu caso, removeu todos os itens extras.

CThin
fonte
Correção mais fácil aqui. Não se preocupe em .slnprocurar os erros.
Jonathan Landrum
Você poderia expandir um pouco mais isso? Alguns usuários podem não entender. Você quer renomeá-lo no explorer, no Visual studio ou no arquivo real?
iTechy
1
Faça isso no Visual Studio, clique com o botão direito do mouse no projeto, altere o nome para qualquer coisa e salve e saia. Reabra e volte ao original, salve e saia. reabra a solução e o erro deve desaparecer.
CThin
2

Resolvida uma mensagem de erro idêntica no VS2012, seguindo o exemplo de Boycs. Para mim, o problema eram dois GlobalSection(SolutionConfigurationPlatforms) = preSolutionblocos estranhos na parte inferior do meu arquivo SLN.

BitPusher16
fonte
2

Para mim, o problema eram espaços vazios (devido a copiar e colar) no final de cada linha. Ao removê-los, não recebi o erro novamente.

papaiatis
fonte
2

No VS 2015, eu tinha duas dessas seções " GlobalSection (TeamFoundationVersionControl) = preSolution "

O primeiro incluiu o projeto mais recente adicionado à solução, o segundo (próximo ao final do arquivo da solução) não. Após excluir o segundo, a solução foi aberta no VS 2015 sem erros.

Papa Stahl
fonte
1

As outras respostas já explicam como corrigir o problema. Talvez eu possa ajudar a não ter o problema novamente:

Como eu consegui o problema Nosso arquivo de solução se confundiu quando adicionei um novo projeto a ele, enquanto outro desenvolvedor também adicionou um novo projeto e confirmou suas alterações (o que eu não obtive no meu sistema local). Quando comecei a confirmar minhas alterações, tive que mesclar o arquivo .sln, onde obviamente errei :-)

O que eu aprendi

Os arquivos de solução são terríveis de mesclar. Se você adicionar um projeto, faça o seguinte: 1. Obtenha a versão mais recente 2. Adicione seu projeto 3. Confirme

Se o seu arquivo de solução estiver com alterações pendentes, mas não houver uma alteração no modo de comparação, pressione 'Salvar tudo'. Ao adicionar seu novo projeto, o VisualStudio também alterou a solução. No entanto, essa é uma alteração não salva no momento.

A Who
fonte
1

Verifique seu SccNumberOfProjects no seu arquivo .sln . Ele pode ser diferente do número real do projeto.

Ali Karaca
fonte
0

Corrigi problema semelhante no vs2012.

no meu caso, o problema era que o valor da propriedade SccProjectName0 dentro de GlobalSection no arquivo MySolutionName.sln estava vazio.

Eu o resolvi definindo o valor SccProjectName0 com cópia desse valor de string de outra solução e substituindo o nome do projeto na string pelo atual (BTW - se o nome do projeto estiver como espaço nele (''), ele precisará substitua por '\ u0020').

*

no meu caso, o problema começou depois que eu abri por engano a solução controlada pelo TFS com o antigo arquivo MySolutionName.sln da mesma solução desde o momento em que essa solução foi controlada pelo VSS.

Yossi B
fonte
0

Atualização 3. do VS2015 [GlobalSection (TeamFoundationVersionControl) = preSolution] foi duplicada no arquivo de solução. A duplicata inferior continha um projeto que foi removido anteriormente ... portanto, a remoção dessa duplicata corrigiu o problema. Penso que a duplicação foi causada por um problema de fusão anterior.

Moutono
fonte
0

Posso adicionar mais uma solução possível - uma mesclagem desonesta significava que uma das sub-rotinas SccProjectUniqueName / SccProjectName / SccLocalPath dentro da seção GlobalSection (TeamFoundationVersionControl) tinha números que não eram exclusivos, mesmo que o SccNumberOfProjects estivesse correto. Corrigida a numeração, a mensagem de erro desaparecia.

Julian Melville
fonte
0

VS 2019 - Eu estava abrindo um projeto do VS 2017 pela primeira vez no VS 2019. Na janela Saída, clique no DDL "Mostrar saída de:" e revise suas opções, pois você pode ver informações adicionais sobre erros.

No meu caso, a solução foi reconfigurar apenas meus mapeamentos de controle de origem para 2019.

  • Entre no Team Explorer
  • Clique no botão Gerenciar conexões (plug)
  • Clique no link Gerenciar conexões e Conecte-se a um projeto ...
  • ...
GrayDwarf
fonte
-1

Eu tive o mesmo problema e minha solução é:

  1. Abra a solução no VS
  2. Defina a plataforma de solução como padrão
  3. Salve isso
  4. Feche o VS
  5. Abra o arquivo .sln no Notepad ++ (ou em qualquer outro editor)
  6. Exclua todos os outros itens da Solution Solution de qualquer lugar
  7. (por exemplo: {73E03C8F-1F76-45E2-9D45-FA040A63F0AA} .Release | Any CPU.Build.0 = Release | Any CPU)
  8. Salve-o e reabra a solução.

Isso funciona para mim.

Zoltán Nyakas
fonte