2015-09-06 15 views
11

Ho una soluzione di Visual Studio (Community 2013) con molti progetti C# sul mio pc e ho appena aggiornato a Windows 10 da 7. Il progetto utilizza il profilo client .Net Framework 4.0. Su win7 tutto ha funzionato bene, ma ora uno dei progetti non sembra caricare i riferimenti. Ci sono triangoli gialli vicino agli articoli di riferimento, quali non sono riferimenti alla stessa soluzione (quindi sistema e riferimenti scaricati da NuGet non caricati).Visual Studio non carica i riferimenti di progetto

references...

I Risorse è un altro progetto nella soluzione, gli altri no. Quando apro la scheda delle proprietà di un sistema di riferimento, il campo Path è vuoto, e così il campo Resolved è False ...

empty path

Inoltre, nel CSPROJ tutto sembra essere ok, c'è sono i nodi <HintPath> dove necessario, con relativo (o assoluto, se il riferimento è su un'altra unità) e corretti, percorsi esistenti.
Un'altra cosa strana: nel Visualizzatore oggetti tutti i riferimenti sono (apparentemente) caricati:

Object Browser seems to be ok

Allora, che cosa devo fare:

  • ricreare il file di progetto (da creare un nuovo progetto e aggiungere nuovamente tutti i file e i riferimenti);
  • modificare qualcosa nella configurazione del progetto;
  • utilizzare una versione più recente di .Net;
  • modificare qualcosa nella configurazione di VS;
  • utilizzare un altro VS (ad esempio Comunità 2015) o reinstallare quello corrente?
+0

hanno installato il quadro? Potrebbe essere assente 4.0 dato che 4.5.x è l'ultimo e dubito che Windows 10 includa framework più vecchi. E potresti osservare le librerie per un nuovo framework in explorer di classe, ma (a causa della differenza di versione) non saranno incluse nel tuo progetto. –

+0

@BradChristie Ho provato a reinstallare il framework, ma esce dicendo "il microsoft net framework 4 è la parte di questo sistema operativo ..." (ecc.). Gli altri progetti possono caricare correttamente i loro riferimenti, usano lo stesso framework. – nvi9

+0

Framework, o framework sdk? –

risposta

9

Ho anche avuto questo problema e mi ha portato un po ' tempo di capirlo. Il problema è che NuGet ha cambiato il modo in cui i pacchetti vengono ripristinati. La "vecchia maniera" necessaria la cartella ".nuget" con 3 file (nuget.config, nuget.exe, nuget.targets) e alcune impostazioni nel file di progetto come

 <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> 
    <PropertyGroup> 
     <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 
    </PropertyGroup> 
    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" /> 
    </Target> 

questo ha causato il progetto per essere rotto .

Per correggere questo o copiare la directory mancante al progetto (ottenere con e vecchia versione sul vs/NuGet o da un collega che l'ha) o solo semplice cancellare la parte citata dal file di progetto.

Per il miglior risultato anche rimuovere

<RestorePackages>true</RestorePackages> 

e

<Import Project="$(SolutionDir)\.nuget\nuget.targets" /> 

dal file di progetto!

Trova più su questo argomento qui: http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html e http://docs.nuget.org/consume/package-restore/migrating-to-automatic-package-restore

+0

Posso confermare che questo è l'approccio corretto, presupponendo che il framework di destinazione non fosse il tuo problema. – sapbucket

+0

Wow, che casino c'è Microsoft nelle loro mani. In VS2017, a quanto pare, questo è ancora un problema. Ho faticato con questo per 2 ore. Quando finalmente ho letto questo post e copiato la cartella .nuget da un altro progetto nella cartella della soluzione, tutto ha funzionato alla fine. Grazie!! – user1524080

1

Il problema principale è il riferimento FRAMEWORK.

Caricare il tuo progetto in VS e cambiare nella vostra pagina di proprietà del progetto (TARGET quadro), l'aggiornamento a .NET 4.x (non cliente) o .NET 4.5

+0

Ho provato, niente di meglio ... Ad ogni modo, altri progetti non hanno problemi con quella versione di .Net. – nvi9

Problemi correlati