2015-11-02 8 views
6

Ho un progetto che funziona correttamente. Questa mattina, ho creato un nuovo progetto TFS e pubblicato tutto il codice da Visual Studio 2015.Impossibile eseguire la soluzione da TFS poiché mancano tutti i riferimenti

Su un altro computer, anche tramite VS2015, ho eseguito l'accesso a Visual Studio Team Services per prendere lo stesso progetto e scaricato tutto il codice

Quando provo a creare, ci sono oltre 100 errori, ma la causa sembra essere la stessa. Non può trovare le risorse, ei messaggi di errore tutti sembrano essere

Il tipo di nome del namespace 'qualche nome' non esiste in '....' (che le manca un riferimento all'assembly?)

Quindi, espongo i riferimenti e mi mancano praticamente tutti. In effetti, a parte i riferimenti all'interno del mio progetto, il resto non ci sono

L'esame delle proprietà non mostra alcun percorso. Torna sul PC originale vedo il percorso qualsiasi DLL è simile troppo

C: \ Users \ Me \ Documenti \ Visual Studio 2015 \ Projects \ MyProj \ ToT \ Packages \ Antlr.3.5.0.2 \ lib \ Antlr3.Runtime.dll

è il problema che dal momento che questo percorso non corrisponde sulla macchina 'difettosa', non può mostrare ... quindi qual è la soluzione a questo

enter image description here

Ho controllato e notato che i file sembrano esistere it li guardo in File Explorer.

All system references missing Visual Studio 2013 NuGet Async non ha aiutato

Si prega di notare, questo accade con tutti i progetti nella mia soluzione, ma non consitently. Ad esempio, EntityFramework manca a tutti, ma manca il sistema dal mio livello UI, ma non dal mio strato BLL

C'è un modo per risolvere questo problema?

+0

I tuoi progetti sono stati creati in VS 2015? Stai usando TFS TFVC o GIT? Metti in coda una build locale o una build TFS quando trovi questo problema? –

+0

@Cece, soluzione originariamente VS 2012 ma migrata a VS 2015. Stato soddisfacente con SVN. Ora rimosso SVN per utilizzare TFS Express (non utilizzando GIT con esso). Non sono a conoscenza che sto facendo la fila o la costruzione in TFS, il problema si verifica quando costruisco in VS – MyDaftQuestions

+0

'nuget restore' come prima fase di caricamento dopo aver caricato la soluzione – leppie

risposta

6

È necessario eseguire l'aggiornamento del pacchetto -reinstall comando per reinstallare tutti i pacchetti a cui fa riferimento.

+1

Un'altra opzione per risolvere questo sarebbe (come Valeria descritta di seguito) per eliminare il contenuto della cartella dei pacchetti. Non è stupido che VS e TFS controllino il contenuto della cartella dei pacchetti per impostazione predefinita? Poiché il git predefinito ignora i file per lo sviluppo C# li hanno esclusi dal controllo del codice sorgente – WhiteIntel

+0

Sto riscontrando un problema simile e né la tua soluzione né Valeria hanno funzionato per me. Qualche idea su cosa provare dopo? – rsnyder

-1

Per prima cosa, andare su VS - Strumenti - Estensioni e aggiornamenti per verificare se ci sono aggiornamenti, installare tutti gli aggiornamenti. Quindi selezionare un riferimento con un'icona di avviso, controllare la proprietà Versione specifica, se il valore è True, cambiarlo in False.

Se il problema persiste, controllare gli assembly di riferimento di .net framwork sui due computer, per verificare se si trovano nella stessa posizione (il framework .Net deve trovarsi in * C: \ Programmi (x86) \ Assiemi di riferimento \ Microsoft \ Framework.NETFramework *).

========================================= =========================== 11/5: Per evitare riferimenti mancanti, puoi controllare tutti i riferimenti al controllo del codice sorgente e il riferimento da quelli controllati dal codice sorgente o utilizzare Nuget Package Manager per installare i pacchetti. Il precedente non è raccomandato ora, prova Nuget Package Manager.

+0

Ho controllato il percorso sul PC funzionante, il percorso per Antlr3.Runtime è 'C: \ Users \ Me \ Documenti \ Visual Studio 2015 \ Progetti \ MyProj \ ToT \ packages \ Antlr.3.5.0.2 \ lib \ Antlr3.Runtime.dll' ... Non vi è alcun percorso sull'altro computer (il uno con la colpa). Sembra che il problema sia solo che non sta prendendo i nomi dei percorsi relativi ma è assoluto per i file .dll. Se questa ipotesi è corretta, come posso condividere i pacchetti tra le macchine? – MyDaftQuestions

+0

Fare clic con il tasto destro del mouse sulla soluzione, selezionare "Gestisci pacchetti Nuget per soluzione", in Gestione pacchetti Nuget, cercare "antlr" e installarlo, quindi controllare la soluzione, dovresti essere in grado di vedere i file .dll quando ottieni la soluzione da un altro computer. –

+1

Per evitare riferimenti mancanti, è possibile controllare tutti i riferimenti al controllo del codice sorgente e fare riferimento a quelli controllati dall'origine oppure utilizzare Nuget Package Manager per installare i pacchetti. Il precedente non è raccomandato ora, prova Nuget Package Manager. –

0

Suoni banali ma i riferimenti mancanti a system.xxxx potrebbero implicare un problema con .NET Framework, quale versione si sta utilizzando ed è installata correttamente sulla macchina 'difettosa'. Potrebbe valere la pena di reinstallare/riparare? Verificerei anche quali versioni sono effettivamente referenziate.

Per quanto riguarda NuGet, assicurarsi che Abilita ripristino pacchetto è impostato come:

enter image description here

Inoltre, ho avuto un problema simile a questo, una volta e ho dovuto aggiornare il pacchetto NuGet manager di versione 3 in Strumenti ->estensioni e Aggiornamenti (è necessario disinstallare e reinstallare come aggiornamento non funzionerà)

enter image description here

Infine, se ciò non funziona, selezionare Esplora file nel percorso dei pacchetti ed eliminare tutti i pacchetti. Non dovrebbero essere inclusi nel controllo del codice sorgente poiché questo è ciò che NuGet scaricherà. Se sono lì o parzialmente lì, a volte non li scaricherà.

0

verificare la versione di .NET: riquadro

  1. proprietà apre il progetto e controllare il framework di destinazione: enter image description here

  2. Garantire questa versione di .NET è installata. O cambiare il framework di destinazione ad un idoneo versione

0

Prima di colpire la testa contro il muro con il milione di 'fissa' Nuget è necessario assicurarsi che si stanno ottenendo tutte le DLL che si trovano in la tua cartella Bin sotto il controllo del codice sorgente. Per qualche ragione un semplice "Scarica l'ultima versione" non è sufficiente. Visual Studio continuerà a dirti che tutti i file sono aggiornati, ma a quanto pare questo non significa che tutti i file sotto il controllo del codice sorgente siano stati scaricati (o lo fa e quello che è successo a me è solo un bug insipido). Ad ogni modo, per assicurarti di essere veramente "tutto", devi forzare un aggiornamento usando il comando "Ottieni versione specifica" con l'opzione "Sovrascrivi tutto" selezionata come suggerisce VS. Per fare ciò:

  1. Passare alla cartella Bin in Explorer controllo origine (O w.cartella di posta veramente si vuole ottenere tutto)

  2. tasto destro> Avanzate> Ottieni versione specifica

  3. Controllare la "sovrascrivere tutti i file, anche se la versione locale corrisponda alla versione specificata" casella

  4. Click Get

In questo modo ho assicurato che tutte le DLL di riferimento sono state scaricate da TFS e per me è stato risolto il problema. Sto usando Visual Studio Enterprise 2015.

0

Vai a TOOLS -> nuget package manager -> gestore di pacchetti console -> ed esegui sulla console: UPDATE-PACKAGE -REINSTALL. Pulisci la tua soluzione, ricostruisci e sei pronto!