Visual Studio che recupera un percorso errato a un progetto da qualche parte


98

Visual Studio (e forse TFS) in qualche modo (penso forse durante un'unione del controllo del codice sorgente) si è confuso sul percorso di un progetto all'interno della mia soluzione.

Pensa che sia qui (esempi di percorsi per semplicità):

C:\My Projects\ExampleSolution\ExampleProjectWrong\ExampleProjectCorrect.csproj

mentre in realtà, il file di progetto si trova qui:

C:\My Projects\ExampleSolution\ExampleProjectCorrect\ExampleProjectCorrect.csproj

Non riesco a farmi riconoscere la posizione corretta. Ho provato:

  • Rimuovere e riaggiungere il progetto dalla posizione corretta. Viene visualizzato un messaggio di errore The project file at C:\My Projects\ExampleSolution\ExampleProjectWrong\ExampleProjectCorrect.csproj could not be found.

  • Modificare manualmente il file .sln per garantire che tutti i riferimenti ExampleProjectCorrect.csprojabbiano i percorsi corretti.

  • Eseguendo una ricerca nei file nella directory della soluzione sia per il percorso corretto che per quello errato, per cercare di rintracciare dove Studio nasconde il percorso errato.

  • Eliminazione delle directory della cache per VS e TFS

Mi sto strappando i capelli perché non riesco a ricreare la soluzione in quanto ha quasi 100 progetti in cui non fa differenza ed è legata al controllo del codice sorgente con molti altri sviluppatori che ci lavorano.

Qualcuno può indicarmi la giusta direzione su dove sta memorizzando questo percorso errato e / o come ripristinarlo in modo che la dannata cosa venga caricata correttamente?


Allora, cosa succede se sposti il ​​progetto nella directory ExampleProjectWrong?
Hans Passant

Ok, qualche progresso .. Spostarlo nella cartella sbagliata mi permette di caricarlo in visual studio. Non posso tenerlo lì, tuttavia, poiché la directory "ExampleProjectWrong" ospita un altro progetto, contenente più o meno la stessa struttura di cartelle. Quindi, qualche idea su come cambiare il percorso del progetto ora che l'ho caricato? Il campo del percorso nelle proprietà del progetto scaricato non è disponibile, anche quando il progetto viene scaricato?
Charlie Drewitt

3
Ho riscontrato questo problema per la seconda volta ora, ma questa volta sono stato in grado di capire che il progetto ramificato mirava alla cartella originale perché utilizzo diverse stringhe di connessione. È stato molto strano la prima volta, perché visualstudio ha eseguito il debug dei file dalla cartella di origine e lo ha mescolato con i file dal ramo e persino Log4net ha registrato nella cartella originale! Ha eliminato il file suo della soluzione e ora sta accedendo correttamente solo ai file ramificati.
Binke

2
Ho avuto lo stesso identico problema. Non è stato così facile come eliminare il file suo. Ho dovuto: 1. Rimuovere il progetto incriminato dalla soluzione. 2. Salvare la soluzione. 3. Eliminare il .suo 4. Aprire la soluzione e aggiungere nuovamente il progetto.
SeanLAllen

1
L'eliminazione del file SUO ha funzionato per me.
DanielV

Risposte:


96
  1. Vai a Gestisci aree di lavoro (tramite il menu File / controllo del codice sorgente o il menu a discesa dell'area di lavoro in Esplora controllo del codice sorgente)
  2. seleziona modifica per il tuo spazio di lavoro.
  3. Dovresti vedere, sotto le cartelle di lavoro, una mappatura per la directory di controllo del codice sorgente nella directory del progetto vecchio / sbagliato.
  4. Selezionalo e fai clic su Rimuovi .
  5. Chiudi VS ed elimina il file suo.

Fa ancora riferimento alla directory sbagliata. Forse il rebinding potrebbe funzionare a questo punto, ma non l'ho provato. Ricarica il tuo progetto e dovresti essere a posto.


1
Inoltre, lasciati ingannare dal collegamento al percorso locale nell'esploratore del controllo del codice sorgente. Avevo più di una mappatura per il mio spazio di lavoro e mostrava quello che mi aspettavo lì, ma quando ha provato a caricare il progetto stava usando l'altro percorso.
Benjamin Potts

1
Il file .suo è nascosto, quindi devi abilitare l'opzione "mostra tutti i file e le cartelle"
ANIL MANE

8
In Visual Studio 2015 ho riscontrato lo stesso errore. Ciò che ha funzionato per me è stato eliminare la directory .vs nascosta e anche il file .suo.
Daniel Leiszen

5
Per VS2015 il tuo .suofile potrebbe non essere dove pensi. Elimina quello che si trova accanto al tuo .slnfile (non dimenticare di "mostrare i file nascosti") e ce n'è anche uno nascosto in una sottodirectory in .\.vs\[solution_name]\v14\.suo. Una volta ottenuti entrambi, potrei aggiungere di nuovo il progetto. Oops - merito parziale a @DanielLeiszen (ho appena notato che ha commentato la stessa cosa)
Richard Hauer

1
Ho dovuto eliminare il file .suo e riavviare VS per far prevalere la sanità mentale
Appulus

33

La semplice eliminazione del .suofile delle soluzioni ha funzionato per me.


5
In VS2015 avevo bisogno di chiudere tutte le istanze di Visual Studio prima che l'eliminazione <SolutionDir>\.vs\<SolutionName>\<VsVersion>\.suofunzionasse per me.
GraehamF

12

Stavo affrontando questo problema dopo aver eseguito una migrazione da Visual Source Safe 2005 a TFS 2012. Non vedevo l'ora che la "Conversione guidata" uscisse nelle prossime due settimane, quindi ho eseguito VSSConvert.exe. Ci sono voluti circa 6 anni di storia e lo ha spostato in TFS .. mentre non ho ricevuto la cronologia effettiva della timeline .. Ho ricevuto un mucchio di voci lo stesso giorno con i commenti che indicavano i check-in effettivi della cronologia. . Non male.

Quindi, dopo che è stato eseguito tutta la notte (con successo, yay!), Ho avuto problemi a caricare i miei progetti proprio come indicato in questa domanda. Per qualche ragione, alcuni progetti venivano referenziati a una directory non corretta. Ho controllato i file .sln, i file .vsproj e ottenendo gli ultimi, cancellando il re-get, aggiungendo la rimozione, ecc. Ho provato tutto ciò che è annotato qui ... anche aggiornando il mio spazio di lavoro, che non sono sicuro nemmeno di cosa abbia fatto.

FINALMENTE ... ho cancellato i file * .suo e la viola. Ha funzionato.

Ho passato un paio d'ore su questo.


2
Prima di eliminare il file * .suo, assicurati di chiudere tutte le istanze di Visual Studio, quindi apri di nuovo la soluzione.
Mas

5

Una soluzione leggermente diversa.

TFS stava visualizzando un percorso inesistente per una particolare soluzione. In precedenza, avevo un laptop con un'unità D: separata, ma ora ho solo un'unità C :. TFS pensava ancora che il mio progetto fosse archiviato in D: \ Project \ MikesProject

Non avevo un .suofile da eliminare, il percorso D: non era menzionato da nessuna parte nei miei spazi di lavoro (sepolto sotto il File\Source Control\Advanced\Workspacesmenu), TFS ha mostrato che avevo gli ultimi file nel mio (non più esistente) D: directory e TFS in VS2013 non disponeva dell'opzione "Rimuovi mapping" per questo progetto.

Ma quello che ha funzionato è stato semplicemente fare una "Scarica la versione più recente" del progetto.

Dopo averlo fatto, una nuova copia del codice è stata scritta sul mio disco C: e (cosa interessante), ora il percorso locale è stato mostrato sottolineato .

In precedenza, il percorso D: non veniva mostrato in questo modo.

Dispari. Molto strano.


2
Esattamente la stessa situazione per me. Ero riluttante a premere il grilletto e "Get Latest" a causa di quel percorso errato, ma @Mike mi ha dato il coraggio!
Jonathan

2

Abbiamo avuto problemi simili con mosse e ridenominazioni. Eliminando le directory locali e poi risolverlo di nuovo.


2

Anche dopo aver eliminato il .suofile e le .vscartelle, ho dovuto modificare il .slnfile e rimuovere il vecchio URL relativo SccProjectName#nonostante SccLocalPath#fosse corretto. Apparentemente VS usa anche il nome come percorso di suggerimento.


1

Prova a eliminare o rinominare il file .suo (inclusa l'estensione). Questo file si trova nella stessa posizione in cui si trova il file della soluzione. Ha funzionato per me.


0

Sto solo indovinando, ma forse alcuni dei tuoi altri progetti fanno riferimento al tuo progetto dalla posizione sbagliata? In questo caso, non devi solo eliminare e reinserire il progetto nella tua soluzione, dovrai anche eliminare e ricreare i riferimenti dai progetti di riferimento (memorizzati nei loro file .csproj).


Grazie per la risposta. il progetto non è referenziato da nessun altro progetto all'interno della soluzione. puoi spiegare perché trovare nei file non funzionerebbe? nella mia esperienza, se gli dai un percorso di directory per "Cerca in", invece di selezionare "Intera soluzione", cercherà tutti i tipi di file a meno che non venga specificato specificamente di cercare solo determinati tipi di file?
Charlie Drewitt

Spiacente, hai ragione, pensavo stessi usando "Trova nei file" solo per i file nella soluzione, non per la directory della soluzione, questo mi mancava. Quindi dovrebbe funzionare. Puoi fornire una descrizione più elaborata quando viene visualizzato esattamente il messaggio di errore? Si verifica durante la compilazione, quindi puoi vedere quale compilazione del progetto non è riuscita?
Doc Brown

0

Dopo aver provato molti consigli ho cancellato il file suo (di nuovo). L'ultima volta ha funzionato. Perché non ha funzionato prima non lo so. In generale trovo l'eliminazione del file suo uno dei primi passaggi che faccio.


0

Ho avuto la mia soluzione del sito Web asp.net aperta dal mio Dev Branch. Quindi per qualche altro scopo ho aperto la stessa soluzione dal ramo principale.

Ho apportato una modifica a uno dei miei file .ascx.cs nel ramo dev e impostato il punto di interruzione. Quando ho eseguito il debugger, tutti i miei punti di interruzione sono stati raggiunti nel Dev Branch ad eccezione di .ascx.cs che stava raggiungendo il ramo principale. Non ne ho idea.

Ho provato a pulire la cartella temporanea ma non ha funzionato.

Cosa ha funzionato:

Chiuse tutte le istanze di Visual Studio

Ha aperto di nuovo la soluzione dal ramo Dev.

Corri di nuovo ei punti di interruzione hanno iniziato a colpire.


0

Nel mio caso ho copiato il file * .sln nella cartella del progetto e ho cambiato il percorso del progetto nel file * .sln. Solo questo ha risolto il problema (vs 2015 sp1, progetto winservise).

Eliminare * .suo non aiuta per me.


0

Ancora un'altra soluzione ha funzionato per noi, dopo aver provato l'eliminazione di suo e di quasi tutto ciò che è menzionato in questo thread. Avevamo un progetto nella soluzione che mostrava una versione fantasma del file csproj. Abbiamo eliminato quel file e i nostri percorsi sono stati corretti su un altro progetto che stavamo cercando di aggiungere.


-1

Se stai eseguendo la tua app web in IIS locale invece che in IISExpress assicurati di PREMERE il pulsante "Crea directory virtuale" andando nelle proprietà del progetto. Una volta fatto, eseguire "Clean Solution" e "Rebuild Solution".



-3

So che è una vecchia linea. Ho appena affrontato lo stesso problema. Di recente abbiamo migrato TFS, quindi ho creato un nuovo spazio di lavoro da mappare al nuovo server e ho mantenuto quello vecchio. Ogni volta che apro una soluzione che dovrebbe essere indirizzata al mio nuovo spazio di lavoro, VS ha sempre cercato di caricare progetti dalla mia vecchia directory di mappatura, finché non ho rimosso il mio vecchio spazio di lavoro.


questo in realtà non fornisce alcun aiuto alla domanda iniziale
vlad_tepesch

Pensavo che il mio problema avesse la stessa natura. Avevo due aree di lavoro, una delle quali è vecchia. Ho lavorato all'interno di uno nuovo e ho creato una soluzione, aggiunto progetti. va tutto bene solo se non ho chiuso la soluzione. Ma se ho salvato la soluzione e ho provato ad aprirla, VS ha sempre provato a caricare i progetti nella soluzione dalla directory mappata nel mio vecchio spazio di lavoro.
BackToSorrento
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.