Tidak dapat memuat file atau perakitan ... Parameternya salah


211

Baru-baru ini saya bertemu pengecualian berikut di solusi C #:

Kesalahan 2 Tidak dapat memuat file atau rakitan 'Newtonsoft.Json, Versi = 3.5.0.0, Kultur = netral, PublicKeyToken = b9a188c8922137c6' atau salah satu dari dependensinya. Parameter salah. (Pengecualian dari HRESULT: 0x80070057 (E_INVALIDARG))

Ini tidak tergantung pada kode saya atau pada nama majelis (seperti Newtonsoft.Jsondalam kasus ini).

Ketika saya menghapus dll ini dari solusi, kompiler memberitahu tentang yang lain dalam pengecualian yang sama. Jadi saya kira sesuatu harus dimatikan / hidup di PC saya :)


3
Tidak. Entah itu kesalahan kompiler atau pengecualian runtime. Saya curiga yang terakhir. Harap lebih jelas.
leppie

2
Saya juga menghadapi pengecualian yang sama tetapi saya berhasil memperbaikinya dengan solusi Thomas. Masalahnya adalah karena pemadaman sistem yang tidak tepat karena kegagalan daya
Sandeep

Jawaban:


346

Sepertinya rakitan rusak sedang dirujuk.

Hapus keduanya:

  1. folder \ bin proyek Anda

  2. folder temp (harus C:\Users\your_username\AppData\Local\Temp\Temporary ASP.NET Filesdi windows 7)

dan lihat apakah kesalahan masih terjadi


3
alex terima kasih banyak untuk ini! hal kedua membantu: Saya membersihkan direktori file ASP.NEt sementara)
Liker777

senang mendengarnya bekerja. jangan lupa untuk menerima jawabannya jika itu membantu :)
Alex

9
lihat jawaban oleh @Thomas untuk menghapus lokasi lain (yang berfungsi untuk saya)
Simon_Weaver

3
Terima kasih. Menghapus folder temp pengguna setelah crash parah memecahkan masalah bagi saya.
Petrus Theron

13
% TEMP% \ Temporary ASP.NET Files C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files C : \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Sementara ASP.NET Files C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Sementara ASP.NET Files C: /Windows/Microsoft.NET/Framework/ v4.0.30319 / File ASP.NET Sementara Daftar ini akan tumbuh seolah-olah Anda memiliki versi lain dari .NetFramework. Jawab Src: stackoverflow.com/a/16033324/1724777 stackoverflow.com/a/11743430/1724777 Alasan Untuk Kemungkinan: BLUE_SCREEN_OF_DEATH
NavaRajan

286

Tergantung pada apakah Anda menjalankan X64, Anda mungkin perlu membersihkan beberapa tempat lagi. Membersihkan direktori pengguna saya saja tidak cukup.

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

Daftar ini akan tumbuh seolah-olah Anda memiliki versi lain dari kerangka kerja yang diinstal.


72
Anda mungkin perlu melakukan ini jika komputer Anda memiliki layar biru selama kompilasi
Simon_Weaver

2
+1 Tambahan yang disusun dengan baik untuk jawabannya. Ini memperbaikinya bagi saya, terima kasih
Ralph Lavelle

7
Ini tampaknya menjadi solusi jika Anda menjalankan Visual Studio sebagai Administrator ketika komputer Anda crash atau, jika Anda tolol seperti saya sendiri, ketika baterai Anda habis.
Sav

4
OH TUHAN! Saya mendapatkan lebih dari 4GB dari proyek prasejarah saya di tempat-tempat itu! Bukankah hal ini pernah dibersihkan?!?! Terima kasih!
user2173353

2
Hanya ingin memberi tahu Anda bahwa lebih dari 2 tahun berlalu, pos ini masih membantu orang. Terima kasih banyak.
Laurence Frost

42

Saya harus membersihkan

C: /Windows/Microsoft.NET/Framework/v4.0.30319/ File ASP.NET sementara

Baru saat itulah masalah terselesaikan.


1
Jawaban ini juga berlaku untuk saya, dengan mesin Win 7 yang meng-hosting MVC 4 di IIS Express
Ben H

13

Untuk mengetahui apa yang harus dihapus dengan pasti - tambahkan kunci registri berikut:

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

Maka Anda akan melihat output seperti di bawah ini. Ini memberi tahu Anda di mana asp.net berusaha memuat DLL Anda. Bersihkan direktori ini.

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 dan juga, IIS reset diperlukan bagi saya untuk melihat jalan.
Landon Poch

Di mana log ini ditampilkan?
Luke Rice

Log ditampilkan dalam output kesalahan ketika pengecualian terjadi
voidsstr

12

Hapus file kerangka kerja sementara untuk proyek Anda di: -

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


5

Anda juga dapat menghapus direktori paket dan mengizinkan NuGet untuk mengunduh ulang paket yang hilang

itu memecahkan masalah bagi saya


... dan saya, meskipun saya baru saja menghapus direktori paket yang mengganggu.
Phil Cooper

Saya menghapus temps di AppData temp & c: \ ... \ micorosoft.net \ .. \ temp, iisreset, ... semuanya disebutkan di atas. tetapi tidak bekerja dengan saya. Setelah saya menghapus semua paket dan mengembalikannya ... ia bekerja dengan saya ... terima kasih banyak: D
bunjeeb

@bunjeeb itu menyenangkan Bung :)
megz

4

Hapus semua file dari folder ini.

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


3

Mendapatkan serangkaian binari baru dari kontrol Sumber membantu.

Terima kasih


3

Cukup bersihkan folder ini: (hanya windows x64)

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



2

Saya memiliki masalah yang sama di sini - solusi di atas tidak berhasil. Masalahnya dengan ActionMailer. Saya menjalankan uninstall berikut dan menginstal perintah nuget

uninstall-package ActionMailer
install-package ActionMailer

Menyelesaikan masalah saya, semoga akan membantu orang lain.


2

Ini dapat terjadi saat mereferensikan dll pembungkus COM. Dalam Proyek Visual Studio Anda, di bawah Referensi, pilih dll pembungkus COM yang direferensikan dan pastikan mereka memiliki nilai properti berikut: "Jenis Interop Sematan": Salah dan "Versi Spesifik": Salah.


Ini adalah jawaban yang bagus dan harus mendapatkan lebih banyak upvotes. Semua jawaban lain menerima begitu saja konteks ASP.NET. Namun, saya memiliki pengecualian yang sama dengan panggilan COM dalam aplikasi Konsol sederhana; ini bekerja dengan baik untuk saya. Terima kasih Pak.
alexlomba87

2

Saya hanya menghapus data temp aplikasi saya dari jalur ini

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

Mengatasi masalah


2

Saya melihat banyak teknisi telah memposting tentang membersihkan direktori sementara ASP .Net run-time yang berkaitan dengan masing-masing dan setiap kerangka .Net yang di-host pada mesin Anda seperti dalam hal ini. jawaban . Tapi saya percaya kita harus tahu logistik yang jelas mengapa kita perlu membabi buta semua direktori kerja sementara dari semua .Net framework. Menurut saya, seharusnya tidak demikian.

Saran saya adalah Anda harus mencoba pendekatan pembersihan direktori berujung pin untuk mengatasi masalah ini. Bagaimana Anda tahu direktori mana yang harus dihapus?

  1. Buka IIS dan klik kanan pada simpul situs web Anda di panel navigasi kiri untuk membuka menu konteks. Dalam menu konteks arahkan ke Manage Application-> Advanced Settings...untuk membuka Advanced Settingsjendela.
  2. Periksa Pool Aplikasi yang ditugaskan oleh situs web Anda. Dalam kasus saya DefaultAppPoolseperti yang ditunjukkan di bawah ini:

masukkan deskripsi gambar di sini

  1. Sekarang pergi ke Application Poolssimpul di bilah navigasi kiri di IIS. Sekarang periksa versi .Net CLR mana yang sedang dijalankan oleh kumpulan aplikasi Anda. Dalam kasus saya ini adalah v4.0 seperti yang ditunjukkan di bawah ini:

masukkan deskripsi gambar di sini

Karena versi CLR yang dihosting oleh kumpulan aplikasi saya adalah v4.0, jadi saya hanya menghapus file sementara dalam folder yang berkaitan dengan ASP .NET v4.0 hanya sebagai berikut:

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

Dan itu saja. Masalah saya terselesaikan.

Hal yang dipelajari : Ini menunjukkan fakta bahwa semua file sementara yang digunakan oleh situs web Anda tidak tersebar di beberapa direktori tetapi mereka sekaligus dirujuk oleh kumpulan aplikasi Anda. Jadi, Anda perlu menghapus folder tertentu saja.


1

Menghapus C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ File ASP.NET Sementara berfungsi untuk saya. Berpikir mengotomatiskan proses penghapusan untuk menghindari masalah di masa depan.


1

Jika Anda menggunakan Alat Data SQL Server 2012, yang menggunakan shell VS2010 pada 1 Mei 2013, periksa pengaturan Manajer Konfigurasi Anda. Perubahan nama server dari Workflow ke xCPWorkflow sudah cukup untuk menghasilkan yang sama persis . Parameter tidak benar (Pengecualian dari HRESULT: 0x80070057 (E_INVALIDARG)) pesan.



1

Saya punya masalah ini saat membuat controller di MVC. Saya mengubah versi .net framework. Masalah terselesaikan


0

Masalahnya berkaitan dengan versi .Net runtime dari pustaka kelas yang direferensikan (referensi yang diperluas, pilih pustaka dan periksa "Versi Runtime". Saya memiliki masalah dengan Antlr3.Runtime, setelah memutakhirkan proyek studio visual saya ke v4.5. Saya menggunakan NuGet untuk menghapus instalasi Microsoft ASP.NET Web Optimization Framework (karena rantai ketergantungan yang mencegah saya menghapus Antlr3 secara langsung)

Saya kemudian menggunakan NuGet untuk menginstal ulang Microsoft ASP.NET Web Optimization Framework. Ini menginstal ulang versi runtime yang benar.


0

Dalam kasus saya, saya ingin mengkompilasi DLL yang terlihat COM. Masalahnya adalah bahwa versi yang lebih lama dari DLL ini berlokasi di sini:

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

Jadi Visual Studio memuat versi ini dan bukan versi yang baru dikompilasi, ketika mencoba mendaftarkannya.


0

Hapus semua file dari folder sementara (C: \ Users \ user_name \ AppData \ Local \ Temp \ Temporary ASP.NET Files \ folder proyek)


0

Terkadang Anda juga perlu membersihkan folder ini: C: \ Windows \ Temp \ Temporary ASP.NET


0

Saya menghadapi kesalahan yang sama karena aplikasi tidak menemukan kerangka kerja dependen di C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\folder. Saya hanya memperbaiki studio Visual saya yang menambahkan kerangka kerja yang diperlukan di lokasi di atas dan berfungsi dengan baik.


0

Dalam kasus saya, mengubah nomor port IISExpress di properti proyek saya, menyelesaikan masalah.


0

Jika ada orang lain di luar sana yang menggunakan alat WiX, saya menemukan bahwa proyek penginstal saya memiliki referensi ke proyek lama yang baru saja dihapus dari solusi. Butuh beberapa saat untuk saya sadari karena ada sejumlah proyek dalam solusi yang saya coba bangun dan pesannya tidak menunjukkan proyek mana yang gagal dibangun (dan bersih, yang juga gagal).


0

Saya memiliki pengguna Siemens Teamcenter 10 Client untuk Microsoft Office yang mendapatkan kesalahan yang sama tentang DLL yang berbeda. Tidak ada jawaban lain yang berfungsi. Solusinya adalah menghapus folder di

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

0

Saya memiliki masalah serupa saat membuka manajer Paket Nuget, saya menghapus semua file temp dan membangun proyek, itu bekerja dengan baik.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.