BuildTasks.Csc-Task konnte nicht aus der Assembly geladen werden?


95

Ich fühle mich schuldig, wenn ich hier eine solche Frage stelle, aber ich bin ratlos und würde mich über Hilfe freuen.

Eine Proof-of-Concept-ähnliche Webanwendung wurde auf einem PC erstellt und in einem Repo zum Herunterladen auf einen anderen PC an einem anderen Speicherort erstellt. Ursprünglich war eine Funktion zum automatischen Erstellen eingerichtet, mit der Azure beim Einchecken automatisch erstellt und veröffentlicht wurde. Diese Funktion wurde jedoch entfernt. Die Dinge funktionierten an beiden Enden, bis eine Seite einen Großteil der ausgeschlossenen Änderungen enthielt. Jetzt sehe ich folgenden Fehler:

Die Aufgabe "Microsoft.CodeAnalysis.BuildTasks.Csc" konnte nicht
aus der Assembly ... \ packages \ Microsoft.Net.Compilers.1.0.0 \ build .. \ tools \ Microsoft.Build.Tasks.CodeAnalysis.dll geladen werden. Datei oder Assembly 'Datei: /// ... \ packages \ Microsoft.Net.Compilers.1.0.0 \ tools \ Microsoft.Build.Tasks.CodeAnalysis.dll' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die angegebene Datei wurde vom System nicht gefunden. Stellen Sie sicher, dass die Deklaration korrekt ist, dass die Assembly und alle ihre Abhängigkeiten verfügbar sind und dass die Aufgabe eine öffentliche Klasse enthält, die Microsoft.Build.Framework.ITask implementiert.

Hat jemand Vorschläge, wo er nach dem Problem suchen soll?


Antworten:


117

Es stellt sich heraus, dass NuGet-Pakete in das Repository übernommen wurden und alles kaputt machten. Das Löschen des Verzeichnisses project \ project \ packages aus dem Repo löste alle Build-Probleme, da NuGet die Pakete beim Build automatisch abruft.


Stellen Sie sicher, dass Sie den eigentlichen Paketordner in VSTS sowie den Inhalt einschließen ... Ich habe nur den Inhalt von Paketen erstellt und den Fehler erhalten
SteveC

1
Ich habe Nuget-Pakete für alle meine Projekte festgelegt. Das einzige Problem ist, wenn Sie sie zur Quellcodeverwaltung hinzufügen möchten, dass die * .dll-Dateien standardmäßig "ausgeschlossene Elemente" sind, sodass Sie nur leere Verzeichnisse anstelle Ihrer Nugets festschreiben. Das ist der Grund, warum selbst das Wiederherstellen von Nuget nicht hilft, da die Verzeichnisse vorhanden sind und Nuget der Meinung ist, dass alles in Ordnung ist.
Jiří Herník

Eine ähnliche Thread-Lösung finden Sie hier kx.cloudingenium.com/programming/net/…
Pramod Sutar

Ich weiß nicht, warum das funktioniert hat ... Was ist der Grund?
Richard Duerr

65

Ich habe diesen Fehler erhalten, als ich einen neuen Zweig für mein Projekt erstellt habe.

Es machte mich eine Stunde lang verrückt. Ich habe die meisten Vorschläge über das Internet ausprobiert, einschließlich der akzeptierten Antwort auf diese Frage.

Ich habe dann das Projekt geschlossen, wieder geöffnet, bereinigt und der Fehler ist verschwunden. Dies bedeutet also, dass dies ein Cache-Problem sein könnte.

Sowieso wollte nur teilen.


6
Vielen Dank! Für mich war es zuerst der Paketordner. Dann hatte ich immer noch den Fehler, aber der Neustart von VS funktionierte :)
dsnunez

35

Auch ich habe die Top-Antwort ohne Glück versucht, also habe ich den Inhalt meines Bin- und Paketverzeichnisses gelöscht, VS geschlossen und wieder geöffnet und jetzt ist alles in Ordnung.


1
Dieser hat mir geholfen. Ich habe versucht, ein vorhandenes ASP.NET-Projekt in VS 2015 in Parallels auszuführen, und es hat mir den obigen Fehler angezeigt. Das Entfernen der Ordner 'bin' und 'packages', der Neustart von VS und ein sauberer Build haben den Trick getan!
A3quecksilber

17

Ich habe alle zuvor beschriebenen Lösungen ausprobiert, aber keine hat funktioniert.

Was es für mich gelöst hat , war das Aktualisieren der Microsoft.Net.Compiler vom NuGet Package Manager


2
Ich hatte das gegenteilige Problem. Ich war zu optimistisch und habe die neueste RC-Version heruntergeladen. Als ich zur neuesten stabilen Version zurückkehrte, war es in Ordnung.
Cool Blue

1
Ich habe ein Upgrade von 2.8 auf 3.1.1 durchgeführt und mein Problem behoben. Vielen Dank!
Dan Csharpster

12
  • Klicken Sie mit der rechten Maustaste auf Ihre Lösung.
  • Gehen Sie zu Nuget-Pakete verwalten.
  • Suchen nach Microsoft.Net.Compilers .
  • Installieren oder aktualisieren Sie abhängige Projekte nach Bedarf.

6

Das Neuerstellen, Bereinigen der Lösung und Neustarten von Visual Studio hat für mich funktioniert.


1
Ja, das gleiche hier, aber nur ein Neustart von VS war nicht genug - ich musste meinen Computer neu starten, dann kam es gut.
Billious

Ein Neustart meines Computers hat den Trick getan. Ich bin mir nicht sicher, ob ich alle Bereinigungen und Neuinstallationen der Nuget-Pakete durchführen musste.
Don Rolling

5

Das Löschen des Pakets und das Reinigen der Lösung haben es für mich gelöst.


4

Das Löschen dieser drei Verzeichnisse löst das Problem.

  • /Pakete
  • /Behälter
  • / obj

HINWEIS : Löschen Sie sowohl / bin als auch / obj aus allen in der Lösung enthaltenen Projekten (einschließlich Testprojekten).


3

Das Problem verbirgt sich in TFS. Sie müssen den Ordner TestProject ... \ packages aus TFS entfernen, einchecken, aus Ihrem lokalen Verzeichnis löschen und erneut erstellen. Hat funktioniert!


3

Ich lösche alle aus dem Paketordner und erstelle die Lösung neu. Es hat bei mir funktioniert.


2

In meinem Fall: das funktioniert bei mir.

Es stellte sich heraus, dass mein Teamkollege bereits begonnen hatte, sich mit der Windows 10-Entwicklung zu befassen, und Microsoft Build Tools 2015 auf seinem Computer installiert hatte.

Ich habe die Software von https://www.microsoft.com/en-us/download/details.aspx?id=48159 installiert und das Problem wurde behoben.


2

Verwenden Sie den folgenden Schritt:

1) Löschen Sie den Paketordner.
2) Schließen Sie das visuelle Studio.
3) Öffnen Sie das Projekt und erstellen Sie das Projekt neu.


1

In meinem Fall war die Lösung:

Verwenden Sie den Windows Explorer und navigieren Sie zum fehlerhaften Pfad: C: \ MyApplication \ Code \ Main \ ABCProject \ ABCProject.UI \ Bin

Klicken Sie mit der rechten Maustaste auf den Ordner bin> wählen Sie Eigenschaften> Deaktivieren Sie ReadOnly.


1

In meinem Fall war die Lösung:

  1. Klicken Sie mit der rechten Maustaste auf Lösung.
  2. Gehen Sie für diese Lösung zu Nuget-Pakete verwalten.
  3. Suche nachMicrosoft.CodeDom.Providers.DotNetCompilerPlatform .
  4. Deinstallieren Sie das gesuchte Paket.
  5. Starten Sie Visual Studio neu.


0

Klicken Sie mit der rechten Maustaste auf Lösung. Gehen Sie für diese Lösung zu Nuget-Pakete verwalten. Suchen Sie im Abschnitt Durchsuchen nach Microsoft.Net.Compilers.



0

In der vs2017-Community wurde ein neues Element im Menü "Erstellen" angezeigt. Es verschwand, nachdem ich es benutzt hatte und hieß so etwas wie " Projektbuild-Pakete optimieren" ". Ich habe darauf geklickt und alles repariert, einfach neu gestartet usw. Ich habe es auf zwei Computern gemacht.

Was es tat, wurde entfernt Microsoft.net.compilers 2.10.0 und durch ersetztMicrosoft.CodeDom.Providers.DotNetCompilerPlatform 2.0.1

Also los geht's - mehr automagisch ...


0

Mein Projekt wurde mit .Net Core 2.2 erstellt, aber ich hatte .Net Core 3.0 Preview installiert. Ich habe .Net Core 3.0 von meinem System deinstalliert und alle meine Klassenbibliotheken durchgesehen, Microsoft.Net.Compilers 3.0 entfernt, dann neu erstellt und es hat funktioniert.


0

Ich habe meine Lösung von einem Laufwerk auf ein anderes verschoben, und eine der Dateien konnte nicht kopiert werden, da "in used", für das ich auf "Ignoriert" klicke, den in diesem Beitrag beschriebenen Fehler verursachte. Durch manuelles Kopieren der fehlenden Datei wurde das Problem behoben.

Datei: Microsoft.Build.Tasks.CodeAnalysis.dll Zielverzeichnis: packages \ Microsoft.Net.Compilers.2.1.0 \ tools


0

Für mich habe ich versucht, ein MVC5-Projekt in VS 2013 zu öffnen, und ich habe diesen Fehler erhalten. Ich habe es in VS 2017 geöffnet und es hat einwandfrei funktioniert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.