Das importierte Projekt "C: \ Microsoft.CSharp.targets" wurde nicht gefunden

126

Ich habe heute diesen Fehler beim Versuch, ein Visual Studio 2008- Projekt in Visual Studio 2005 zu öffnen, erhalten :

Das importierte Projekt "C: \ Microsoft.CSharp.targets" wurde nicht gefunden.

Lomaxx
quelle
Ich musste meine Referenzen umbenennen Microsoft.CSharp.Targetszu Microsoft.CSharp.targetsin den .csprojDateien.
Stephane

Antworten:

112

Ö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" />
Lomaxx
quelle
22
Meins sagt: "<Import Project =" $ (MSBuildExtensionsPath32) \ ... "
B. Clay Shannon
@Iomaxx, ich habe dieses Problem behoben, indem ich das Monodevelop Build Target von Mono / .NET 3.5 auf Mono / .NET 4.0 geändert habe.
Frank
5
Meins sagte bereits MSBuildBinPath, aber es enthielt CompactFramework im Namespace: <Import Project = "$ (MSBuildBinPath) \ Microsoft.CompactFramework.CSharp.targets" />
Teysz
Wenn Sie Monodevelop verwenden, werden die Pakete "mono-msbuild" und "mono-msbuild-sdkresolver" installiert. HINWEIS: Getestet unter Linux Manjaro.
Eduardo Lucio
Sie müssen das "msbuild-stabile" (oder gleichwertige) Paket entfernen, wenn es installiert ist. HINWEIS: Getestet unter Linux Manjaro.
Eduardo Lucio
59

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

  • Entfernen Sie zuerst den Paketordner ( er befindet sich in der Nähe oder einen Schritt bis zu Ihrem aktuellen Projektordner ).
  • Starten Sie dann das Projekt oder die Lösung neu.
  • Erstellen Sie nun die Lösungsdatei neu.
  • Das Projekt erhält neue Referenzen vom nuGet-Paketmanager. Und Ihr Problem wurde behoben.

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.

Bharat
quelle
1
Wie Alf Moh sagt, finden Sie diese Datei einfach irgendwo anders auf Ihrem Computer und kopieren Sie sie in den Ordner, in dem sie gesucht wird
Serj Sagan
@ SerjSagan ja, das wird helfen, aber manchmal können Sie nicht einmal eine Lösungsdatei in Visual Studio öffnen, zu diesem Zeitpunkt wird meine Lösung helfen ..
Bharat
5
Ich hatte dieses Problem unter Visual Studio für Mac, die 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!
A-Sharabiani
1
Das hat es für mich behoben, aber ein Kollege von mir konnte dies zum ersten Mal zum Laufen bringen. Während dies funktioniert, habe ich noch etwas zu finden!
JakePlatford
1
Gut gemacht, Alter! Ich habe 1 Stunde verloren
Hugo Nava Kopp
20

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.

user2042930
quelle
1
Das war das Problem für mich. Der Projektname enthielt Platz, sodass der Verzeichnisname nach dem Git-Klon% 20 enthielt. Sie können verwenden git clone <RepoUrl> <LocalDirName>, um den Namen des Verzeichnisses anzugeben, in das geklont werden soll, um zu vermeiden, dass% 20
Dan Cook am
11

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.

Oleg Sacharow
quelle
11

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.

Vojta
quelle
6

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.

appenthused
quelle
6

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:

  1. Ö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.

  2. 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).

  3. 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.

Alf Moh
quelle
3

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.

Peter
quelle
3

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')" />
Ben
quelle
2

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 .

Andre Luus
quelle
2

Bei Fehlern mit Microsoft.WebApplications.targetskönnen Sie:

  1. Installieren Sie Visual Studio 2010 (oder dieselbe Version wie auf dem Entwicklungscomputer) auf Ihrem TFS-Server.
  2. Kopieren Sie das " Microsoft.WebApplication.targets" aus der Entwicklungsmaschinendatei auf die TFS-Buildmaschine.

Hier ist der Beitrag.

stack247
quelle
1

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).

Greg Gum
quelle
0

Ich habe den obj-Ordner gelöscht und dann das Projekt wie erwartet geladen.

Atron Seige
quelle
0

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"
WholeLifeLearner
quelle
0

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.

Alex
quelle
0

Nachdem ich mehrmals versucht hatte, VS wiederherzustellen, das fehlgeschlagene Paket zu löschen, erneut zu öffnen und zu versuchen, es wiederherzustellen, habe ich einfach alles in Paketen gelöscht und als ich eine Wiederherstellung durchgeführt habe, hat es perfekt funktioniert.

Worthy7
quelle