2010-05-07 20 views
13

Chiunque ha mai riscontrato questo errore durante il tentativo di creare una soluzione in Visual Studio 2008?Il file di progetto '' è stato rinominato o non è più nella soluzione

Mi sta facendo impazzire! Ho rimosso tutti i progetti contenenti e li ho riaggiunti e non mi consente ancora di creare o eseguire la soluzione.

Qualche suggerimento?

+0

Stai cercando di creare un nuovo progetto o uno esistente? Puoi dare maggiori dettagli .. – Malcolm

+0

Soluzione esistente, hai appena rimosso un paio di progetti che non esistono più e VS è diventato un po 'pazzo! –

+1

Microsoft non può fare di meglio? Tipo, che ne dici di dare qualche indicazione su quale progetto è rotto? Ho perso innumerevoli ore a causa di bug di Visual Studio (e C++) o cattivo comportamento. –

risposta

8

Se si apre il file di soluzione (SolutionName.sln) in un editor di testo che si dovrebbe un paio di righe qualcosa come questi per ogni progetto:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F89EFBC}") = "ProjectName", "ProjectName\ProjectName.csproj", "{6B887D8C-D874-4AB2-B2CC-3551DEA2CC83}" 
EndProject 

Ci possono essere più cose tra quelle righe, o in questo caso possono corrompere in qualche modo. Se riesci a isolare la voce del problema e rimuoverla, potresti riuscire a resuscitare la soluzione.

+1

Ci sono solo i due progetti nominati che mi aspettavo, e alcune informazioni globali, nessun progetto extra senza nome ... –

+0

Se crei una nuova soluzione e aggiungi i progetti esistenti, funziona? –

+0

Non ho idea, come si crea un nuovo SLN da zero senza iniziare con un progetto? –

5

La soluzione accettata qui non ha risolto per noi. Il file .sln aveva il percorso corretto per il progetto. Invece, qualcuno ha spinto il file .sln.cache in git e ha avuto il percorso sbagliato per il progetto. Abbiamo eliminato il file .sln.cache dal computer e la build ha funzionato correttamente. Per prevenirlo in futuro, abbiamo rimosso il file .sln.cache da git, aggiunto * .sln.cache al file .gitignore.

8

Ho passato un paio d'ore su questo errore ieri e fortunatamente sono arrivato fino in fondo.

Abbiamo un file di progetto, chiamiamolo semplicemente ProblemProj.vcxproj che era originariamente incluso in SolutionA.sln e compilato correttamente. Il progetto è stato quindi aggiunto a una soluzione diversa, SolutionB.sln, e compilato correttamente in quella soluzione. Tuttavia, dopo il ritorno a SolutionA, il "file di progetto" è stato rinominato "si è verificato un errore.

Ciò è accaduto perché VS2010 ha deciso di modificare ProjectGUID di ProblemProj.vcxproj. Il SolutionB.sln ha fatto riferimento al GUID corretto, ma SolutionA.sln aveva ancora un riferimento al vecchio GUID.

Lo si può trovare nel file .sln cercando qualcosa di simile:

< ProjectGuid> {271F161A-F26F-41D1-BDC8-FCF912A2F4FB} </ProjectGuid>

Il problema può essere risolto in i seguenti modi:

1) Modificare manualmente il GUID in SolutionA.sln aprendolo in un editor di testo e cercando il markup sopra.

2) Rimuovere il progetto da SolutionA.sln e aggiungerlo di nuovo; questo gli ha fatto prendere il GUID corretto e fortunatamente non ha deciso di cambiarlo di nuovo.

3) Ripristinare la modifica GUID in ProblemProj.vcxproj (che quindi causerà l'errore stesso esatto in SolutionB, quindi non lo consiglierei a meno che SolutionB non importi più).

Spero che questo aiuti.

1

Passare ai riferimenti dei progetti e verificare se uno di tali progetti di riferimento è contrassegnato da un'etichetta (non disponibile).

Rimuovere questo riferimento e aggiungerlo di nuovo.

Mi è venuto in mente, ed è così che ho trovato la soluzione per risolvere questo problema.

+0

Grazie ... il tuo suggerimento ha risolto il mio problema. In questo caso, il progetto stava facendo riferimento ad altri progetti che non erano nella soluzione. irrealizzato su questo guardando i riferimenti del progetto. – jstuardo

2

Ho appena riscontrato lo stesso errore in VS 2012 con una causa leggermente diversa, dopo aver caricato una soluzione che VS era sembrata soddisfatta.

Si scopre che un singolo progetto C++ nella soluzione aveva un riferimento a un progetto senza nome (solo un Guid: nessun nome, nessun percorso). Mentre questo progetto è stato caricato, era impossibile creare, pulire o mostrare riferimenti per QUALSIASI dei progetti nella soluzione. Ho scoperto quale progetto ha avuto il cattivo riferimento scaricando i progetti dalla soluzione finché non ha smesso di lamentarsi.

+0

Posso confermarlo, la soluzione proposta ha funzionato per me. – Stefan

0

Nuke the SDF. Ho provato a controllare tutti i GUID e riferimenti senza successo. Ho cancellato il file SDF della soluzione e si è chiarito. (L'SDF è un file di database generato automaticamente.)

Problemi correlati