Risposte:
Apri il tuo file csproj in notepad (o notepad ++) Trova la riga:
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
e cambiarlo in
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
Questa è una soluzione globale, non dipendente da particolari pacchetti o bin.
Nel mio caso, ho rimosso la cartella Pacchetti dalla mia directory principale.
Forse succede a causa dei tuoi pacchetti, ma il compilatore non sta trovando il suo riferimento. quindi rimuovi prima i pacchetti più vecchi e aggiungi nuovi pacchetti.
Passaggi per aggiungere nuovi pacchetti
Questa non è una soluzione adeguata, ma l' ho pubblicata qui perché ho riscontrato lo stesso problema.
Nel mio caso, non sono stato nemmeno in grado di aprire la mia soluzione in Visual Studio e non ho avuto alcun aiuto con altre risposte SO.
Microsoft.CSharp.targetsfile per qualche motivo è stato eliminato! come hai detto, ho eliminato la packagescartella e riavviato Visual Studio, magicamente ha funzionato!
Per me il problema era che il percorso del progetto conteneva% 20 caratteri, perché git ha aggiunto quelli invece degli spazi quando è stato clonato il repository. Un altro problema potrebbe essere se il percorso di un pacchetto è troppo lungo.
git clone <RepoUrl> <LocalDirName>per specificare il nome della directory in cui clonare per evitare di avere% 20
Questo link su MSDN aiuta anche molto a capire il motivo per cui non funziona. $ (MSBuildToolsPath) è il percorso di Microsoft.Build.Engine v3.5 (inserito automaticamente in un file di progetto quando si crea in VS2008). Se si tenta di creare il progetto per .Net 2.0, assicurarsi di aver modificato questo percorso in $ (MSBuildBinPath) che è il percorso di Microsoft.Build.Engine v2.0.
Nel mio caso non sono riuscito a caricare uno su 5 progetti nella mia soluzione.
Mi ha aiutato a chiudere Visual Studio e ho dovuto eliminare la Microsoft.Net.Compilers.1.3.2 cartella nuget nella packagescartella.
Successivamente, riapri la soluzione e il progetto viene caricato come previsto
Per sicurezza, chiudi tutte le istanze di VS prima di eliminare la cartella.
Avevo questa linea nel file csproj:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
Dopo aver eliminato questo file, funziona benissimo.
Se si verifica l'errore che dice Microsoft.CSharp.Core.targets not found, questi sono i passaggi che ho preso per correggere il mio:
Apri qualsiasi cartella di progetti di lavoro precedente e vai al link mostrato nell'errore, ovvero Projects/(working project name)/packages/Microsoft.Net.Compilers.1.3.2/tools/cerca il Microsoft.CSharp.Core.targetsfile.
Copia questo file e inseriscilo nel progetto non funzionante tools folder(ovvero, navigando nella cartella degli strumenti nel progetto non funzionante come mostrato sopra)
Ora chiudi il tuo progetto (se era aperto) e riaprilo.
Dovrebbe funzionare ora.
Inoltre, per assicurarti che tutto funzioni correttamente nel tuo progetto Visual Studio ora aperto, vai a Tools > NuGetPackage Manager > Manage NuGet Packages For Solution. Qui, potresti trovare un errore che dice, CodeAnalysis.dll è utilizzato da un'altra applicazione.
Ancora una volta, vai su tools folder, trova il file specificato ed eliminalo. Torna a Manage NuGet Packages For Solution. Troverai un link che ti chiederà di ricaricare, fare clic su di esso e tutto verrà reinstallato.
Il tuo progetto dovrebbe funzionare correttamente ora.
Ho ottenuto questo dopo aver reinstallato Windows. Visual Studio è stato installato e ho potuto vedere il tipo di progetto Silverlight nella finestra Nuovo progetto, ma aprirne uno non funzionava. La soluzione era semplice: dovevo installare il runtime di Silverlight Developer e / o Microsoft Silverlight 4 Tools per Visual Studio. Questo può sembrare stupido, ma l'ho trascurato perché pensavo che dovesse funzionare, dato che il tipo di progetto Silverlight era disponibile.
Nel mio caso, ho aperto il mio file .csproj nel blocco note e ho rimosso le seguenti tre righe. Ha funzionato come un fascino:
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" />
ok, e se dicesse questo: tra i segni gt / lt
Importa progetto = "$ (MSBuildExtensionsPath) \ Microsoft \ Silverlight \ v3.0 \ Microsoft.Silverlight.CSharp.targets" /
come posso correggere l'errore target?
Ho anche trovato quella stringa di importazione in un progetto demo (in particolare "Crea il tuo framework MVVM" di Rob Eisenburg).
Se si sostituisce l'importazione che con quello suggerito da lomaxx VS2010 RTM riporta che è necessario installare questo .
Questo errore può verificarsi anche quando si apre un progetto Silverlight che è stato creato in SL 4, mentre SL 5 è installato.
Ecco un messaggio di errore di esempio: Il progetto importato "C: \ Programmi (x86) \ MSBuild \ Microsoft \ Silverlight \ v4.0 \ Microsoft.Silverlight.CSharp.targets" non è stato trovato.
Nota la v4.0.
Per risolvere, modifica il progetto e trova:
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
E cambiarlo in v5.0.
Quindi ricaricare il progetto e si aprirà (a meno che non si abbia SL 5 installato).
Ho eliminato la cartella obj e quindi il progetto caricato come previsto.
A volte il problema potrebbe essere con la versione VS hardcoded nel file .csproj. Se hai nel tuo csproj qualcosa del genere:
[...]\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets"
È necessario verificare se il numero è corretto (la ragione per cui è sbagliato può essere che il progetto è stato creato con un'altra versione di Visual Studio). Se è sbagliato, sostituiscilo con la tua attuale versione degli strumenti di compilazione O usa la variabile VS:
[...]\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets"
Ho riscontrato questo problema durante l'esecuzione di un playbook Ansible, quindi voglio aggiungere qui i miei 2 centesimi. Ho notato un messaggio di avviso sulla mancanza di Visual Studio 14. Visual Studio versione 14 è stato rilasciato nel 2015 e la soluzione al mio problema era l'installazione di Visual Studio 2015 Professional sul computer host del mio agente DevOps di Azure.
Microsoft.CSharp.TargetsaMicrosoft.CSharp.targetsnei.csprojfile.