Antworten:
Öffnen Sie Ihre csproj-Datei im Editor (oder Notepad ++). Suchen Sie die Zeile:
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
und ändern Sie es in
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
Dies ist eine globale Lösung, die nicht von einem bestimmten Paket oder Fach abhängig ist.
In meinem Fall habe ich den Ordner " Pakete " aus meinem Stammverzeichnis entfernt.
Möglicherweise liegt es daran, dass Ihre Pakete vorhanden sind, der Compiler jedoch keine Referenz findet. Entfernen Sie daher zuerst ältere Pakete und fügen Sie neue Pakete hinzu.
Schritte zum Hinzufügen neuer Pakete
Dies ist keine richtige Lösung, aber ich habe sie hier veröffentlicht, weil ich vor dem gleichen Problem stehe.
In meinem Fall konnte ich meine Lösung nicht einmal im Visual Studio öffnen und bekam keine Hilfe bei anderen SO-Antworten.
Microsoft.CSharp.targetsDatei wurde aus irgendeinem Grund gelöscht! Wie Sie sagten, habe ich den packagesOrdner gelöscht und das Visual Studio neu gestartet, magisch hat es funktioniert!
Für mich war das Problem, dass der Pfad des Projekts% 20 Zeichen enthielt, weil git diese anstelle von Leerzeichen hinzufügte, als das Repository geklont wurde. Ein weiteres Problem könnte sein, wenn der Pfad zu einem Paket zu lang ist.
git clone <RepoUrl> <LocalDirName>, um den Namen des Verzeichnisses anzugeben, in das geklont werden soll, um zu vermeiden, dass% 20
Dieser Link auf MSDN hilft auch sehr, den Grund zu verstehen, warum es nicht funktioniert. $ (MSBuildToolsPath) ist der Pfad zu Microsoft.Build.Engine v3.5 (wird beim Erstellen in VS2008 automatisch in eine Projektdatei eingefügt). Wenn Sie versuchen, Ihr Projekt für .Net 2.0 zu erstellen, stellen Sie sicher, dass Sie diesen Pfad in $ (MSBuildBinPath) geändert haben. Dies ist der Pfad zu Microsoft.Build.Engine v2.0.
In meinem Fall konnte ich nicht eines von 5 Projekten in meine Lösung laden .
Es half, Visual Studio zu schließen, und ich musste den Nuget-Ordner unter dem Ordner löschen .Microsoft.Net.Compilers.1.3.2packages
Öffnen Sie anschließend Ihre Lösung erneut und laden Sie das Projekt wie erwartet
Schließen Sie zur Sicherheit alle Instanzen von VS, bevor Sie den Ordner löschen.
Ich hatte diese folgende Zeile in der csproj-Datei:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
Nach dem Löschen dieser Datei funktioniert es einwandfrei.
Wenn Sie auf den Fehler stoßen, der besagt Microsoft.CSharp.Core.targets not found, sind dies die Schritte, die ich unternommen habe, um meinen zu korrigieren:
Öffnen Sie einen früheren Ordner für Arbeitsprojekte und navigieren Sie zu dem im Fehler angezeigten Link, Projects/(working project name)/packages/Microsoft.Net.Compilers.1.3.2/tools/und suchen Sie nach einer Microsoft.CSharp.Core.targetsDatei.
Kopieren Sie diese Datei und fügen Sie sie in das nicht funktionierende Projekt ein tools folder(dh navigieren Sie zum Werkzeugordner im nicht funktionierenden Projekt, wie oben gezeigt).
Schließen Sie nun Ihr Projekt (falls es geöffnet war) und öffnen Sie es erneut.
Es sollte jetzt funktionieren.
Um sicherzustellen, dass in Ihrem jetzt geöffneten Visual Studio-Projekt alles ordnungsgemäß funktioniert, gehen Sie zu Tools > NuGetPackage Manager > Manage NuGet Packages For Solution. Hier finden Sie möglicherweise einen Fehler, der besagt, dass CodeAnalysis.dll von einer anderen Anwendung verwendet wird.
Gehen Sie erneut zu tools folder, suchen Sie die angegebene Datei und löschen Sie sie. Komm zurück zu Manage NuGet Packages For Solution. Sie finden einen Link, der Sie auffordert, neu zu laden, darauf zu klicken und alles wird neu installiert.
Ihr Projekt sollte jetzt ordnungsgemäß funktionieren.
Ich habe dies nach der Neuinstallation von Windows erhalten. Visual Studio wurde installiert, und ich konnte den Silverlight-Projekttyp im Fenster "Neues Projekt" sehen, aber das Öffnen eines funktionierte nicht. Die Lösung war einfach: Ich musste die Silverlight Developer-Laufzeit und / oder die Microsoft Silverlight 4-Tools für Visual Studio installieren. Das mag dumm erscheinen, aber ich habe es übersehen, weil ich dachte, es sollte funktionieren, da der Silverlight-Projekttyp verfügbar war.
In meinem Fall habe ich meine .csproj-Datei im Editor geöffnet und die folgenden drei Zeilen entfernt. Lief wie am Schnürchen:
<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 also was ist wenn es das sagt: zwischen den gt / lt zeichen
Projekt importieren = "$ (MSBuildExtensionsPath) \ Microsoft \ Silverlight \ v3.0 \ Microsoft.Silverlight.CSharp.targets" /
Wie behebe ich den Zielfehler?
Ich habe diese Importzeichenfolge auch in einem Demo-Projekt gefunden (speziell "Build your own MVVM Framework" von Rob Eisenburg).
Wenn Sie diesen Import durch den von lomaxx VS2010 vorgeschlagenen ersetzen, meldet RTM, dass Sie diesen installieren müssen .
Bei Fehlern mit Microsoft.WebApplications.targetskönnen Sie:
Microsoft.WebApplication.targets" aus der Entwicklungsmaschinendatei auf die TFS-Buildmaschine.Hier ist der Beitrag.
Dieser Fehler kann auch auftreten, wenn Sie ein in SL 4 erstelltes Silverlight-Projekt öffnen, während Sie SL 5 installiert haben.
Hier ist eine Beispielfehlermeldung: Das importierte Projekt "C: \ Programme (x86) \ MSBuild \ Microsoft \ Silverlight \ v4.0 \ Microsoft.Silverlight.CSharp.targets" wurde nicht gefunden.
Beachten Sie die v4.0.
Bearbeiten Sie zum Auflösen das Projekt und suchen Sie:
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
Und ändern Sie es auf v5.0.
Laden Sie dann das Projekt neu und es wird geöffnet (es sei denn, Sie haben SL 5 nicht installiert).
Ich habe den obj-Ordner gelöscht und dann das Projekt wie erwartet geladen.
Manchmal liegt das Problem möglicherweise an der fest codierten VS-Version in der .csproj-Datei. Wenn Sie in Ihrem csproj so etwas haben:
[...]\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets"
Sie sollten überprüfen, ob die Nummer korrekt ist (der Grund dafür kann sein, dass das Projekt mit einer anderen Version von Visual Studio erstellt wurde). Wenn es falsch ist, ersetzen Sie es durch Ihre aktuelle Version der Build-Tools ODER verwenden Sie die VS-Variable:
[...]\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets"
Ich bin beim Ausführen eines Ansible-Playbooks auf dieses Problem gestoßen, daher möchte ich hier meine 2 Cent hinzufügen. Ich habe eine Warnmeldung über das Fehlen von Visual Studio 14 erhalten. Visual Studio Version 14 wurde 2015 veröffentlicht. Die Lösung für mein Problem bestand darin, Visual Studio 2015 Professional auf dem Hostcomputer meines Azure DevOps-Agenten zu installieren.
Microsoft.CSharp.TargetszuMicrosoft.CSharp.targetsin den.csprojDateien.