Datei oder Baugruppe konnte nicht geladen werden… Der Parameter ist falsch

211

Kürzlich bin ich bei C # -Lösung auf folgende Ausnahme gestoßen:

Fehler 2 Datei oder Assembly 'Newtonsoft.Json, Version = 3.5.0.0, Culture = neutral, PublicKeyToken = b9a188c8922137c6' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Der Parameter ist falsch. (Ausnahme von HRESULT: 0x80070057 (E_INVALIDARG))

Dies hängt weder von meinem Code noch vom Namen der Assembly ab (wie Newtonsoft.Jsonin diesem Fall).

Wenn ich diese DLL aus der Lösung lösche, teilt der Compiler in derselben Ausnahme eine andere mit. Also sollte wohl an meinem PC etwas ein- und ausgeschaltet werden :)

Liker777
quelle
3
Nein. Entweder handelt es sich um einen Compilerfehler oder eine Laufzeitausnahme. Ich vermute letzteres. Bitte seien Sie klarer.
Leppie
2
Ich habe auch die gleiche Ausnahme gesehen, aber ich habe es geschafft, sie mit Thomas 'Lösung zu beheben. Das Problem war auf ein unsachgemäßes Herunterfahren des Systems aufgrund eines Stromausfalls zurückzuführen
Sandeep

Antworten:

346

Sieht aus wie eine beschädigte Assembly, auf die verwiesen wird.

Lösche beide:

  1. den Ordner \ bin Ihres Projekts

  2. der temporäre Ordner (sollte C:\Users\your_username\AppData\Local\Temp\Temporary ASP.NET Filesin Windows 7 sein)

und prüfen Sie, ob der Fehler weiterhin auftritt

Alex
quelle
3
alex vielen dank dafür! Das zweite hat geholfen: Ich habe das temporäre ASP.NEt-Dateiverzeichnis bereinigt.
Liker777
froh zu hören, dass es funktioniert. Denken Sie daran, die Antwort zu akzeptieren, wenn es geholfen hat :)
Alex
9
Siehe Antwort von @Thomas für andere Orte zu löschen (was für mich funktioniert hat)
Simon_Weaver
3
Vielen Dank. Das Löschen des Benutzertemp-Ordners nach einem schweren Absturz löste das Problem für mich.
Petrus Theron
13
% TEMP% \ Temporäre ASP.NET-Dateien C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporäre ASP.NET-Dateien C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporäre ASP.NET-Dateien C. : \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Temporäre ASP.NET-Dateien C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporäre ASP.NET-Dateien C: /Windows/Microsoft.NET/Framework/ v4.0.30319 / Temporäre ASP.NET-Dateien Diese Liste wird so erweitert, als hätten Sie andere Versionen von .NetFramework. Antwort Src: stackoverflow.com/a/16033324/1724777 stackoverflow.com/a/11743430/1724777 Grund für das Problem: BLUE_SCREEN_OF_DEATH
NavaRajan
286

Je nachdem, ob Sie X64 ausführen, müssen Sie möglicherweise einige weitere Stellen bereinigen. Nur mein Benutzerverzeichnis aufzuräumen war nicht genug.

  1. % TEMP% \ Temporäre ASP.NET-Dateien
  2. C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporäre ASP.NET-Dateien
  3. C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporäre ASP.NET-Dateien
  4. C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Temporäre ASP.NET-Dateien
  5. C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporäre ASP.NET-Dateien

Diese Liste wird so erweitert, als ob andere Versionen des Frameworks installiert wären.

Thomas
quelle
72
Möglicherweise müssen Sie dies tun, wenn Ihr Computer während der Kompilierung einen Bluescreen erstellt hat
Simon_Weaver,
2
+1 Schön kompilierte Ergänzung zur Antwort. Dies hat es für mich behoben, danke
Ralph Lavelle
7
Dies scheint die Lösung zu sein, wenn Sie Visual Studio als Administrator ausführen, wenn Ihr Computer abstürzt, oder wenn Sie genauso blöd sind wie ich, wenn der Akku leer ist.
Sav
4
OH MEIN GOTT! Ich habe über 4 GB von meinen prähistorischen Projekten an diesen Orten bekommen! Räumen diese Dinge nicht jemals auf?!?! Vielen Dank!
user2173353
2
Ich wollte Sie nur wissen lassen, dass dieser Beitrag über 2 Jahre hinweg immer noch Menschen hilft. Vielen Dank.
Laurence Frost
42

Ich musste klären

C: /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files

Erst dann wurde das Problem behoben.

Sachin Kainth
quelle
1
Diese Antwort funktionierte auch für mich mit einem 64-Bit-Win 7-Computer, auf dem MVC 4 in IIS Express gehostet wird
Ben H,
13

Um zu wissen, was sicher gelöscht werden muss, fügen Sie den folgenden Registrierungsschlüssel hinzu:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion\EnableLog (DWord set to 1).

Dann sehen Sie die Ausgabe wie unten. Hier erfahren Sie, wo asp.net versucht, Ihre DLLs zu laden. Löschen Sie dieses Verzeichnis.

LOG: This bind starts in default load context.
LOG: Using application configuration file: c:\app\AtlasAdvisor\web\web.config
LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL **file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/3c8629f7/dfa387b6/Avanade.ViddlerNet.DLL.**
LOG: Attempting download of new URL **file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/3c8629f7/dfa387b6/Avanade.ViddlerNet/Avanade.ViddlerNet.DLL**.
voidsstr
quelle
3
Außerdem war ein IIS-Reset erforderlich, damit ich die Pfade sehen konnte.
Landon Poch
Wo wird dieses Protokoll angezeigt?
Luke Rice
Das Protokoll wird in der Fehlerausgabe
angezeigt,
12

Löschen Sie die temporären Framework-Dateien für Ihr Projekt in: -

C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporäre ASP.NET-Dateien \

Andy
quelle
5

Sie können auch das Paketverzeichnis löschen und NuGet erlauben , fehlende Pakete erneut herunterzuladen

es hat das Problem für mich gelöst

Megz
quelle
... und ich, obwohl ich gerade das fehlerhafte Paketverzeichnis entfernt habe.
Phil Cooper
Ich habe die Temps in AppData temp & c gelöscht: \ ... \ micorosoft.net \ .. \ temp, iisreset, ... alles oben erwähnt. funktioniert aber nicht bei mir. Sobald ich alle Pakete gelöscht und wiederhergestellt habe ... funktioniert es bei mir ... vielen Dank: D
Bunjeeb
@bunjeeb es ist ein Vergnügen Kerl :)
Megz
4

Löschen Sie alle Dateien aus diesen Ordnern.

C: /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files C: /Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files

Rakin
quelle
3

Es half, neue Binärdateien aus der Quellcodeverwaltung zu erhalten.

Vielen Dank

Als ob
quelle
3

Löschen Sie einfach diesen Ordner: (nur Windows x64)

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporäre ASP.NET-Dateien

pixparker
quelle
2

Danke Alex, dein zweiter Punkt hat mir geholfen, das zu beheben.

Wenn Sie Visual Studio nicht als Administrator in Windows 7 ausführen, werden Ihre temporären Dateien anscheinend lokal und nicht unter C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporäre ASP.NET-Dateien gespeichert.

Siehe folgenden Blog-Beitrag: http://www.dotnetscraps.com/dotnetscraps/post/Location-of-Temporary-ASPNET-files-in-Vista-or-Windows-7.aspx

Ameise
quelle
2

Ich hatte hier das gleiche Problem - die oben genannten Lösungen haben nicht funktioniert. Problem war mit ActionMailer. Ich habe die folgenden Befehle zum Deinstallieren und Installieren von Nuget ausgeführt

uninstall-package ActionMailer
install-package ActionMailer

Ich habe meine Probleme gelöst und hoffe hoffentlich jemand anderem.

LiamB
quelle
2

Dies kann passieren, wenn auf COM-Wrapper-DLLs verwiesen wird. Wählen Sie in Ihrem Visual Studio-Projekt unter Verweise die COM-Wrapper-DLLs aus, auf die verwiesen wird, und stellen Sie sicher, dass sie die folgenden Eigenschaftswerte haben: "Interop-Typen einbetten": False und "Spezifische Version": False.

Nemo
quelle
Dies ist eine großartige Antwort und sollte mehr positive Stimmen erhalten. Alle anderen Antworten setzen den ASP.NET-Kontext als selbstverständlich voraus. Ich hatte jedoch die gleiche Ausnahme, die durch einen COM-Aufruf in einer einfachen Konsolenanwendung ausgelöst wurde. das hat bei mir perfekt funktioniert. Danke mein Herr.
Alexlomba87
2

Ich lösche nur meine temporären Anwendungsdaten aus diesem Pfad

C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files

Problemlösung

Atik Sarker
quelle
2

Ich sehe viele Techies über Clearing temporäre Verzeichnisse von ASP .NET - Laufzeit gebucht haben auf jeden betreffen und jeder .NET Framework auf Ihrem Rechner gehostet wie in diesem Antwort. Ich bin jedoch der Meinung, dass wir die eindeutige Logistik kennen sollten, warum wir alle temporären Arbeitsverzeichnisse blind von allen .Net-Frameworks löschen müssen. Meiner Meinung nach sollte das nicht der Fall sein.

Mein Rat wäre, dass Sie versuchen sollten, ein genaues Verzeichnis zu löschen, um dieses Problem zu beheben. Woher wissen Sie, welches Verzeichnis gelöscht werden muss?

  1. Gehen Sie zu IIS und klicken Sie mit der rechten Maustaste auf Ihren Website-Knoten im linken Navigationsbereich, um das Kontextmenü zu öffnen. Zeigen Sie im Kontextmenü auf Manage Application-> Advanced Settings..., um das Advanced SettingsFenster zu öffnen .
  2. Überprüfen Sie den Anwendungspool, dem Ihre Website zugewiesen ist. In meinem Fall ist es wie folgt DefaultAppPool:

Geben Sie hier die Bildbeschreibung ein

  1. Gehen Sie nun zum Application PoolsKnoten in der linken Navigationsleiste im IIS. Überprüfen Sie nun, welche .Net CLR-Version von Ihrem App-Pool ausgeführt wird. In meinem Fall ist es v4.0 wie unten gezeigt:

Geben Sie hier die Bildbeschreibung ein

Da die CLR-Version, die von meinem App-Pool gehostet wird, Version 4.0 ist, habe ich nur die temporären Dateien im Ordner für ASP .NET Version 4.0 genau wie folgt gelöscht:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files

Und das ist es. Mein Problem wurde gelöst.

Lektion gelernt : Dies ist ein Hinweis darauf, dass alle temporären Dateien, die von Ihrer Website verwendet werden, nicht auf mehrere Verzeichnisse verteilt sind, sondern gleichzeitig von Ihrem App-Pool verwiesen werden. Sie müssen also nur diesen bestimmten Ordner löschen.

RBT
quelle
1

Das Löschen von C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporäre ASP.NET-Dateien hat bei mir funktioniert. Denken Sie daran, den Löschprozess zu automatisieren, um das Problem in Zukunft zu vermeiden.

stephen ebichondo
quelle
1

Wenn Sie die Datentools von SQL Server 2012 verwenden, die zum 1. Mai 2013 die VS2010-Shell verwenden, überprüfen Sie Ihre Configuration Manager-Einstellungen. Eine Änderung des Servernamens von Workflow zu xCPWorkflow reichte aus, um genau dasselbe zu erzeugen. Der Parameter ist falsch (Ausnahme von HRESULT: 0x80070057 (E_INVALIDARG)) .

SAinCA
quelle
1

Ich hatte dieses Problem beim Erstellen eines Controllers in MVC. Ich habe die Version .net Framework geändert. Das Problem wurde gelöst

Hossein Hajizadeh
quelle
0

Das Problem betrifft die .Net-Laufzeitversion einer referenzierten Klassenbibliothek (erweiterte Referenzen, wählen Sie die Bibliothek aus und überprüfen Sie die "Laufzeitversion". Nach dem Upgrade meines Visual Studio-Projekts auf Version 4.5 hatte ich ein Problem mit Antlr3.Runtime. I. hat NuGet verwendet, um Microsoft ASP.NET Web Optimization Framework zu deinstallieren (aufgrund einer Reihe von Abhängigkeiten, die mich daran gehindert haben, Antlr3 direkt zu deinstallieren)

Ich habe dann NuGet verwendet, um das Microsoft ASP.NET Web Optimization Framework neu zu installieren. Dadurch wurden die richtigen Laufzeitversionen neu installiert.

Dave Russell
quelle
0

In meinem Fall wollte ich eine COM sichtbare DLL kompilieren. Das Problem war, dass sich hier eine ältere Version dieser DLL befand:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE

Daher hat Visual Studio diese Version anstelle der neu kompilierten Version geladen, als es versuchte, sie zu registrieren.

Dummy
quelle
0

Löschen Sie alle Dateien aus dem temporären Ordner (C: \ Benutzer \ Benutzername \ AppData \ Local \ Temp \ Temporäre ASP.NET-Dateien \ Projektordner).

Kaushal
quelle
0

Manchmal müssen Sie auch diesen Ordner bereinigen: C: \ Windows \ Temp \ Temporary ASP.NET

Eriendel
quelle
0

Ich hatte den gleichen Fehler, weil die Anwendung keine abhängigen Frameworks im C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\Ordner gefunden hat. Ich repariere gerade mein Visual Studio, das das erforderliche Framework an der oben genannten Stelle hinzugefügt hat, und es funktioniert einwandfrei.

Vijay Kumbhoje
quelle
0

In meinem Fall wurde das Problem durch Ändern der IISExpress-Portnummer in meinen Projekteigenschaften behoben.

h3n
quelle
0

Wenn jemand anderes das WiX-Toolset verwendet, habe ich festgestellt, dass mein Installationsprojekt einen Verweis auf ein altes Projekt enthält, das kürzlich aus der Lösung entfernt wurde. Es hat eine Weile gedauert, bis mir klar wurde, dass die Lösung, die ich erstellen wollte, eine Reihe von Projekten enthält und die Meldung nicht angibt, welches Projekt nicht erstellt werden konnte (und sauber, welches ebenfalls fehlgeschlagen ist).

rostig
quelle
0

Ich hatte Benutzer von Siemens Teamcenter 10 Client für Microsoft Office, die denselben Fehler über eine andere DLL erhielten. Keine der anderen Antworten funktionierte. Die Lösung bestand darin, die Ordner in zu löschen

C:\Users\%username%\AppData\Local\assembly\
Caleb Mauer
quelle
0

Ich hatte das ähnliche Problem beim Öffnen des Nuget Packet Managers, ich entfernte alle temporären Dateien und erstellte das Projekt, es funktionierte gut.

Shreya Singh
quelle