Impossibile caricare il file o l'assembly ... Il parametro non è corretto


211

Di recente ho incontrato la seguente eccezione alla soluzione C #:

Errore 2 Impossibile caricare il file o l'assembly "Newtonsoft.Json, Version = 3.5.0.0, Culture = neutral, PublicKeyToken = b9a188c8922137c6" o una delle sue dipendenze. Il parametro non è corretto. (Eccezione da HRESULT: 0x80070057 (E_INVALIDARG))

Ciò non dipende né dal mio codice né dal nome dell'assembly (come Newtonsoft.Jsonin questo caso).

Quando elimino questa dll dalla soluzione, il compilatore ne parla di un altro nella stessa eccezione. Quindi suppongo che qualcosa dovrebbe essere spento / acceso sul mio PC :)


3
No. O è un errore del compilatore o un'eccezione di runtime. Ho il sospetto di quest'ultimo. Per favore, sii più chiaro.
leppie,

2
Ho anche affrontato la stessa eccezione, ma sono riuscito a risolverlo con la soluzione di Thomas. Il problema era dovuto a un arresto improprio del sistema a causa di
un'interruzione

Risposte:


346

Sembra che venga fatto riferimento a un assembly danneggiato.

Cancella entrambi:

  1. la cartella \ bin del tuo progetto

  2. la cartella temporanea (dovrebbe essere C:\Users\your_username\AppData\Local\Temp\Temporary ASP.NET Filesin Windows 7)

e vedere se l'errore si verifica ancora


3
alex grazie mille per questo! la seconda cosa ha aiutato: ho pulito la directory dei file temporanei ASP.NEt)
Liker777,

felice di sentire che funziona. ricordati di accettare la risposta se ha aiutato :)
Alex

9
vedi la risposta di @Thomas per le altre posizioni da eliminare (che ha funzionato per me)
Simon_Weaver

3
Grazie. Cancellare la cartella temporanea dell'utente dopo un arresto anomalo ha risolto il problema per me.
Petrus Theron,

13
% TEMP% \ File ASP.NET temporanei C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ File ASP.NET temporanei C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ File ASP.NET temporanei C : \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ File ASP.NET temporanei C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ File ASP.NET temporanei C: /Windows/Microsoft.NET/Framework/ v4.0.30319 / File temporanei ASP.NET Questo elenco si espanderà come se si avessero altre versioni di .NetFramework. Risposta Src: stackoverflow.com/a/16033324/1724777 stackoverflow.com/a/11743430/1724777 motivo per la Prob: BLUE_SCREEN_OF_DEATH
NavaRajan

286

A seconda se usi X64, potresti dover ripulire un paio di punti in più. Basta ripulire la mia directory utente non era abbastanza.

  1. % TEMP% \ File ASP.NET temporanei
  2. C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ File ASP.NET temporanei
  3. C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ File ASP.NET temporanei
  4. C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ File ASP.NET temporanei
  5. C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ File ASP.NET temporanei

Questo elenco aumenterà come se fossero installate altre versioni del framework.


72
potresti scoprire che devi farlo se il tuo computer è stato visualizzato in
blu

2
+1 Aggiunta ben compilata alla risposta. Questo mi ha risolto, grazie
Ralph Lavelle,

7
Questa sembra essere la soluzione se si esegue Visual Studio come amministratore quando il computer si arresta in modo anomalo o, in alternativa, se si è drogati come me, quando la batteria si esaurisce.
Salva il

4
OH MIO DIO! Ho ottenuto oltre 4 GB da progetti preistorici in quei luoghi! Questa cosa non ripulisce mai?!?! Grazie!
user2173353

2
Volevo solo farti sapere che oltre 2 anni dopo, questo post aiuta ancora le persone. Grazie mille.
Laurence Frost,

42

Ho dovuto cancellare

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

Solo allora il problema è stato risolto.


1
Questa risposta ha funzionato anche per me, con una macchina Win 7 a 64 bit che ospita MVC 4 in IIS Express
Ben H,

13

Per sapere con certezza cosa cancellare - aggiungi la seguente chiave di registro:

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

Quindi vedrai l'output come di seguito. Questo ti dice dove asp.net sta tentando di caricare le tue DLL. Cancella questa directory.

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

3
Oh, e anche, un reset IIS era necessario per me per vedere i percorsi.
Landon Poch,

Dove viene visualizzato questo registro?
Luke Rice,

Il registro viene visualizzato nell'output dell'errore quando si verifica un'eccezione
voidsstr

12

Cancella i file di framework temporanei per il tuo progetto in: -

C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ File ASP.NET temporanei \


5

È inoltre possibile cancellare la directory dei pacchetti e consentire a NuGet di scaricare nuovamente i pacchetti mancanti

mi ha risolto il problema


... e io, anche se ho appena rimosso la directory del pacchetto offensivo.
Phil Cooper,

Ho eliminato le temp in AppData temp & c: \ ... \ micorosoft.net \ .. \ temp, iisreset, ... tutto è stato dimensionato sopra. ma non funziona con me. Una volta cancellati tutti i pacchetti e ripristinati ... funziona con me ... grazie mille: D
bunjeeb

@bunjeeb è un piacere amico :)
megz

4

Elimina tutti i file da queste cartelle.

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


3

È stato utile ottenere un nuovo set di file binari dal controllo del codice sorgente.

Grazie


3

Cancella questa cartella: (solo Windows x64)

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ File ASP.NET temporanei



2

Ho avuto lo stesso problema qui - le soluzioni sopra non funzionavano. Il problema era con ActionMailer. Ho eseguito i seguenti comandi di disinstallazione e installazione di nuget

uninstall-package ActionMailer
install-package ActionMailer

Risolto i miei problemi, si spera che possa aiutare qualcun altro.


2

Ciò può accadere facendo riferimento a DLL wrapper COM. Nel progetto Visual Studio, in Riferimenti, selezionare le DLL del wrapper COM a cui si fa riferimento e assicurarsi che abbiano i seguenti valori di proprietà: "Incorpora tipi di interoperabilità": Falso e "Versione specifica": Falso.


Questa è un'ottima risposta e dovrebbe ottenere più voti. Tutte le altre risposte danno per scontato il contesto ASP.NET. Tuttavia, ho avuto la stessa eccezione sollevata da una chiamata COM in una semplice applicazione Console; Ha funzionato perfettamente per me. Grazie Signore.
alexlomba87,

2

Ho appena cancellato i miei dati temporanei dell'applicazione da questo percorso

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

Risoluzione del problema


2

Vedo che molti tecnici hanno pubblicato informazioni sulla cancellazione di directory temporanee di runtime ASP .Net relative a tutti i framework .Net ospitati sulla macchina come in questo risposta. Ma credo che dovremmo conoscere la logistica chiara sul perché dobbiamo cancellare ciecamente tutte le directory di lavoro temporanee di tutti i framework .Net. Secondo me, non dovrebbe essere così.

Il mio consiglio è di provare un approccio di svuotamento di directory appuntito per risolvere questo problema. Come faresti a sapere quale directory cancellare?

  1. Vai su IIS e fai clic con il pulsante destro del mouse sul nodo del tuo sito Web nel riquadro di navigazione sinistro per aprire il menu di scelta rapida. Nel menu di scelta rapida selezionare Manage Application-> Advanced Settings...per aprire la Advanced Settingsfinestra.
  2. Controlla il pool di applicazioni a cui è assegnato il tuo sito Web. Nel mio caso è DefaultAppPoolcome mostrato di seguito:

inserisci qui la descrizione dell'immagine

  1. Ora vai al Application Poolsnodo nella barra di navigazione a sinistra in IIS. Ora controlla quale versione .Net CLR è in esecuzione nel tuo pool di app. Nel mio caso è v4.0 come mostrato di seguito:

inserisci qui la descrizione dell'immagine

Poiché la versione CLR ospitata dal mio pool di app è v4.0, quindi ho cancellato in modo preciso solo i file temporanei nella cartella relativi ad ASP .NET v4.0 solo come di seguito:

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

E questo è tutto. Il mio problema è stato risolto.

Lezione appresa : questo è indicativo del fatto che tutti i file temporanei utilizzati dal tuo sito Web non sono sparsi in più directory ma vengono immediatamente indirizzati dal pool di app. Quindi è necessario cancellare solo quella cartella specifica.


1

La cancellazione di C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ File ASP.NET temporanei ha funzionato per me. Pensando di automatizzare il processo di eliminazione per evitare il problema in futuro.


1

Se si utilizzano gli strumenti dati di SQL Server 2012, che utilizza la shell VS2010 al 1 ° maggio 2013, controllare le impostazioni di Configuration Manager. Una modifica del nome del server da Workflow a xCPWorkflow è stata sufficiente per produrre esattamente lo stesso Il parametro non è corretto (eccezione da HRESULT: 0x80070057 (E_INVALIDARG)) .



1

Ho avuto questo problema durante la creazione del controller in MVC. Ho cambiato la versione .net framework. Il problema è stato risolto


0

Il problema riguarda la versione di runtime .Net di una libreria di classi di riferimento (riferimenti espansi, selezionare la libreria e verificare la "Versione di runtime". Ho avuto un problema con Antlr3.Runtime, dopo aver aggiornato il mio progetto Visual Studio alla v4.5. usato NuGet per disinstallare Microsoft ASP.NET Web Optimization Framework (a causa di una catena di dipendenze che mi ha impedito di disinstallare direttamente Antlr3)

Ho quindi usato NuGet per reinstallare Microsoft ASP.NET Web Optimization Framework. Ciò ha reinstallato le versioni di runtime corrette.


0

Nel mio caso volevo compilare una DLL visibile COM. Il problema era che una versione precedente di questa DLL si trovava qui:

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

Visual Studio ha quindi caricato questa versione anziché quella appena compilata, nel tentativo di registrarla.


0

Cancella tutti i file dalla cartella temporanea (cartella C: \ Users \ nome_utente \ AppData \ Local \ Temp \ Temporary ASP.NET Files \ project)


0

A volte, inoltre, è necessario pulire questa cartella: C: \ Windows \ Temp \ Temporary ASP.NET


0

Ho riscontrato lo stesso errore perché l'applicazione non ha trovato framework dipendenti nella C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\cartella. Ho appena riparato il mio Visual Studio che ha aggiunto il framework richiesto nella posizione sopra e funziona benissimo.


0

Nel mio caso, la modifica del numero di porta IISExpress nelle proprietà del mio progetto ha risolto il problema.


0

Se qualcun altro là fuori sta usando il set di strumenti WiX, ho scoperto che il mio progetto di installazione aveva un riferimento a un vecchio progetto che era stato recentemente rimosso dalla soluzione. Mi ci è voluto un po 'di tempo per rendermi conto dato che nella soluzione che stavo tentando di realizzare ci sono stati molti progetti e il messaggio non indicava quale progetto non fosse stato realizzato (e pulito, ma anche quello).


0

Ho avuto gli utenti del client Siemens Teamcenter 10 per Microsoft Office che ottengono lo stesso errore su una DLL diversa. Nessuna delle altre risposte ha funzionato. La soluzione era eliminare le cartelle in

C:\Users\%username%\AppData\Local\assembly\

0

Ho avuto il problema simile durante l'apertura di Nuget Packet Manager, ho rimosso tutti i file temporanei e creato il progetto, ha funzionato bene.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.