ファイルまたはアセンブリを読み込めませんでした…パラメータが正しくありません


211

最近、C#ソリューションで次の例外に遭遇しました。

エラー2ファイルまたはアセンブリ 'Newtonsoft.Json、Version = 3.5.0.0、Culture = neutral、PublicKeyToken = b9a188c8922137c6'またはその依存関係の1つを読み込めませんでした。パラメータが正しくありません。(HRESULTからの例外:0x80070057(E_INVALIDARG))

これは私のコードにもアセンブリの名前にも依存しません(Newtonsoft.Jsonこの場合のように)。

ソリューションからこのdllを削除すると、コンパイラーは同じ例外内の別のDLLについて通知します。だから私は何かが私のPCでオフ/オンになっていると思います:)


3
いいえ。これは、コンパイラエラーまたはランタイム例外のいずれかです。後者だと思います。より明確にしてください。
leppie

2
私も同じ例外に直面しましたが、Thomasのソリューションでなんとか修正できました。問題は、電源障害による不適切なシステムシャットダウンが原因でした
Sandeep

回答:


346

参照されている破損したアセンブリのように見えます。

両方をクリア:

  1. プロジェクトの\ binフォルダー

  2. 一時フォルダー(C:\Users\your_username\AppData\Local\Temp\Temporary ASP.NET FilesWindows 7にある必要があります)

エラーがまだ発生するかどうかを確認します


3
アレックスはこれをたくさんありがとう!2番目の助けになった:一時ASP.NEtファイルディレクトリをクリーンアップしました)
Liker777

それが機能するのを聞いてうれしいです。それが役に立ったなら答えを受け入れることを忘れないでください:)
アレックス

9
削除する他の場所については@Thomasの回答を参照してください(これは私にとっては
うまくいき

3
ありがとう。ハードクラッシュ後にユーザーの一時フォルダーをクリアすると、問題が解決しました。
Petrus Theron 2013

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 \ Temporary ASP.NET Files C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files C:/Windows/Microsoft.NET/Framework/ v4.0.30319 /一時ASP.NETファイルこのリストは、他のバージョンの.NetFrameworkを使用しているかのように増加します。Answer Src:stackoverflow.com/a/16033324/1724777 stackoverflow.com/a/11743430/1724777 Reason for the Prob:BLUE_SCREEN_OF_DEATH
NavaRajan

286

X64を実行しているかどうかによっては、さらにいくつかのスポットをクリーンアップする必要がある場合があります。ユーザーディレクトリをクリーンアップするだけでは不十分でした。

  1. %TEMP%\ Temporary ASP.NETファイル
  2. C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files
  3. C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files
  4. C:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Temporary ASP.NET Files
  5. C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files

このリストは、フレームワークの他のバージョンがインストールされているかのように拡大します。


72
コンパイル中にコンピューターがブルースクリーンになった場合は、これを行う必要があるかもしれません
Simon_Weaver

2
+1答えにうまくコンパイルされた追加。これで解決しました。ありがとう
Ralph Lavelle 2013年

7
これは、コンピューターがクラッシュしたときに管理者としてVisual Studioを実行している場合、またはバッテリーがなくなったときに自分自身と同じくらい問題がある場合の解決策のようです。
2013

4
ああ、神様!私はそれらの場所で私の先史時代のプロジェクトから4GBを超えました!これは片付けませんか?!?!ありがとう!
user2173353

2
2年以上経っても、この投稿は今でも人々の役に立つことをお知らせしたいと思います。どうもありがとう。
ローレンスフロスト

42

クリアしなければならなかった

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

その後、問題は解決しました。


1
この回答は、IIS ExpressでMVC 4をホストしている64ビットのWindows 7マシンで機能しました
Ben H

13

何を確実にクリアするかを知るには、次のレジストリキーを追加します。

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

次に、以下のような出力が表示されます。これは、asp.netがDLLをロードしようとしている場所を示します。このディレクトリをクリアします。

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
また、パスを確認するにはIISのリセットが必要でした。
Landon Poch 2014年

このログはどこに表示されますか?
ルークライス

例外が発生すると、ログがエラー出力に表示されます
voidsstr

12

次の場所にあるプロジェクトの一時フレームワークファイルをクリアします。

C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \


5

また、パッケージディレクトリをクリアして、NuGetが不足しているパッケージを再ダウンロードできるようにすることもできます。

それは私のために問題を解決しました


...そして私、問題のあるパッケージディレクトリを削除しました。
Phil Cooper

AppData temp&c:\ ... \ micorosoft.net \ .. \ temp、iisresetなどの一時ファイルを削除しました...上記のすべての情報を含みます。私と一緒には動かない。すべてのパッケージを削除して復元したら...動作します...どうもありがとう:D
bunjeeb

@bunjeebそれは喜びの男です:)
megz

4

これらのフォルダからすべてのファイルを削除します。

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

ソース管理からバイナリの新しいセットを取得することが役立ちました。

ありがとう


3

このフォルダをクリアするだけです:(Windows x64のみ)

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


2

アレックス、ありがとうございます。2つ目のポイントは、この問題の解決に役立ちました。

Windows 7で管理者としてVisual Studioを実行しない限り、一時ファイルはC:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Filesではなくローカルに保存されているようです。

次のブログ投稿を参照してください:http : //www.dotnetscraps.com/dotnetscraps/post/Location-of-Temporary-ASPNET-files-in-Vista-or-Windows-7.aspx


2

私はここで同じ問題を抱えていました-上記の解決策は機能しませんでした。問題はActionMailerにありました。次のアンインストールおよびインストールnugetコマンドを実行しました

uninstall-package ActionMailer
install-package ActionMailer

私の問題を解決しました。うまくいけば、他の誰かを助けるでしょう。


2

これは、COMラッパーDLLを参照しているときに発生する可能性があります。Visual Studioプロジェクト内の[参照]で、参照されているCOMラッパーdllを選択し、次のプロパティ値があることを確認します: "Embed Interop Types":Falseおよび "Specific Version":False。


これは素晴らしい答えであり、より多くの賛成を得るべきです。他のすべての回答は、ASP.NETコンテキストを当然と見なします。ただし、単純なコンソールアプリケーションのCOM呼び出しによって同じ例外が発生しました。これは完璧に機能しました。ありがとうございます。
alexlomba87

2

このパスからアプリケーションの一時データを削除するだけです

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

問題解決


2

これのように、マシンでホストされているすべての.Netフレームワークに関連するASP .Netランタイムの一時ディレクトリをクリアすることについて、多くの技術者が投稿しているようです回答のです。しかし、すべての.Netフレームワークの一時作業ディレクトリをすべて盲目的にクリアする必要がある理由について、明確なロジスティクスを知っておく必要があると思います。私によると、そうではないはずです。

私のアドバイスは、この問題を解決するには、ピンポイントのディレクトリクリアアプローチを試すことです。どのディレクトリをクリアするかをどのようにして知っていますか?

  1. IISに移動し、左側のナビゲーションペインでWebサイトノードを右クリックして、コンテキストメニューを開きます。コンテキストメニューでManage Application-> Advanced Settings...をポイントしてAdvanced Settingsウィンドウを開きます。
  2. Webサイトが割り当てられているアプリケーションプールを確認します。私の場合はDefaultAppPool以下のようになります:

ここに画像の説明を入力してください

  1. 次にApplication Pools、IISの左側のナビゲーションバーのノードに移動します。アプリプールで実行されている.Net CLRバージョンを確認します。私の場合、以下に示すようにv4.0です。

ここに画像の説明を入力してください

アプリプールでホストされているCLRのバージョンはv4.0なので、以下のように、ASP .NET v4.0に関連するフォルダー内の一時ファイルのみを正確にクリアしました。

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

以上です。私の問題は解決しました。

教訓:これは、Webサイトで使用されているすべての一時ファイルが複数のディレクトリに分散しているわけではなく、同時にアプリプールによって参照されているという事実を示しています。そのため、その特定のフォルダのみをクリアする必要があります。


1

C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Filesをクリアするとうまくいきました。将来的に問題を回避するために削除プロセスを自動化することを考えています。


1

2013年5月1日の時点でVS2010シェルを使用するSQL Server 2012のデータツールを使用している場合は、構成マネージャーの設定を確認してください。ワークフローからxCPWorkflowへのサーバー名の変更は、まったく同じものを生成するのに十分でしたパラメーターが正しくありません(HRESULTからの例外:0x80070057(E_INVALIDARG))メッセージ。


1

アプリケーションをクリーンアップ、ビルド、または再ビルドするか、C:\ Users \ YOUR USERNAME \ AppData \ Local \ Temp一時ASP.NETファイルを削除することができます。

これは魔法のように機能します。私の場合、ファイルbla bla blaを読み込めないというアセンブリバインディングの問題がありました

ソリューション2はhttp://www.codeproject.com/Articles/663453/Understanding-Clean-Build-and-Rebuild-in-Visual-St


1

MVCでコントローラーを作成するときにこの問題が発生しました。バージョン.netフレームワークを変更しました。問題は解決しました


0

問題は、参照クラスライブラリの.Netランタイムバージョンに関連しています(拡張参照、ライブラリを選択し、「ランタイムバージョン」を確認してください。VisualStudioプロジェクトをv4.5にアップグレードした後、Antlr3.Runtimeで問題が発生しました。 NuGetを使用してMicrosoft ASP.NET Web最適化フレームワークをアンインストールしました(Antlr3を直接アンインストールできなかった一連の依存関係のため)

次に、NuGetを使用してMicrosoft ASP.NET Web最適化フレームワークを再インストールしました。これにより、正しいランタイムバージョンが再インストールされました。


0

私の場合、COM表示DLLをコンパイルしたいと思いました。問題は、このDLLの古いバージョンがここにあるということでした。

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

したがって、Visual Studioは、登録しようとしたため、新しくコンパイルされたバージョンではなく、このバージョンをロードしました。


0

一時フォルダー(C:\ Users \ user_name \ AppData \ Local \ Temp \ Temporary ASP.NET Files \ project folder)からすべてのファイルをクリアします


0

場合によっては、次のフォルダーもクリーンアップする必要があります:C:\ Windows \ Temp \ Temporary ASP.NET


0

アプリケーションがC:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\フォルダーに依存フレームワークを見つけられなかったため、同じエラーに直面しました。上記の場所に必要なフレームワークを追加したVisual Studioを修復すると、問題なく機能します。


0

私の場合、プロジェクトのプロパティでIISExpressのポート番号を変更すると問題が解決しました。


0

他の誰かがWiXツールセットを使用している場合、私のインストーラープロジェクトが最近ソリューションから削除された古いプロジェクトへの参照を持っていることを発見しました。私がビルドしようとしていたソリューションには多数のプロジェクトがあり、メッセージにはどのプロジェクトがビルドに失敗したか(そしてクリーンアップも失敗したか)が示されていなかったため、少し時間がかかりました。


0

Siemens Teamcenter 10 Client for Microsoft Officeのユーザーに、別のDLLに関する同じエラーが発生しました。他の答えはどれもうまくいきませんでした。解決策は、フォルダを削除することでした

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

0

Nugetパケットマネージャーを開くときに同様の問題が発生したため、すべての一時ファイルを削除してプロジェクトをビルドしましたが、問題なく動作しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.