Acabei de encontrar esse problema no VS 2013. Algo que eu não conseguia isolar estava alterando o GUID no arquivo CSPROJ. Como os arquivos CSPROJ são verificados no SVN, eu não poderia simplesmente mudar o GUID no meu desenvolvedor local. Em vez disso, eu estava constantemente revertendo o SVN a mudança local toda vez que acontecia.
Primeiro, tive que resolver o problema de mudança do GUID.
- Reverta o CSPROJ para a versão com check-in.
- Abra o CSPROJ através de um editor de texto, NÃO VS.
Extraia o valor do arquivo CSPROJ original.
{B1234567-5123-4AAE-FE43-8465767788ED}
Abra o arquivo SLN através de um editor de texto, NÃO VS.
Localize a referência do projeto na solução.
Projeto ("{FAE12345-3210-1357-B3EB-00CA4F396F7C}") = "Some.Project", ".... \ assemblies \ Some.Project \ Some.Project.csproj", "{B7654321-5321-4AAE- FE3D-ED20900088ED} "EndProject
O primeiro GUID listado é o GUID da solução. Para cada projeto mencionado no seu SLN, você deve ver esse valor repetido no primeiro argumento. O GUID após o arquivo .csproj é o que você deseja substituir pelo GUID original.
Isso deve resolver o primeiro problema, mas o destino "Ir para a definição" nos metadados não é resolvido. Em nosso arquivo SLN, há um projeto mestre (nosso site), portanto, sua entrada no arquivo SLN deve conter uma entrada ProjectSection com vários valores GUID. Aqui está um exemplo:
ProjectSection(ProjectDependencies) = postProject
{AC50D230-24C4-4DCA-BAAD-355E6AF5EFBD} = {AC50D230-24C4-4DCA-BAAD-355E6AF5EFBD}
EndProjectSection
Observe que o GUID ausente nesta coleção é o do meu projeto intocado.
- Adicione o GUID ausente como a última entrada entre ProjectSection e EndProjectSection. O formato parece ser por linha e é {GUID} = {GUID}.
- Salve o arquivo.
- Abra sua solução.
- Clique com o botão direito do mouse em uma referência no projeto recém-adicionado e em "Ir para definição".