web-dev-qa-db-ja.com

ファイルまたはアセンブリをロードできませんでした...パラメータが正しくありません

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

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

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

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

208
Liker777

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

両方をクリアします:

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

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

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

344
Alex

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

  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

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

285
Thomas

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

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

そうして初めて問題は解決しました。

42
Sachin Kainth

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

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

プロジェクトの一時的なフレームワークファイルをクリアします。

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

12
andy

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

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

5
megz

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

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

4
Rakin

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

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

3
pixparker

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

ありがとう

3
Asif

アレックス、2番目のポイントがこの問題を解決するのに役立ちました.

Visual StudioをWindows 7で管理者として実行しない限り、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
Ant

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

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

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

enter image description here

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

enter image description here

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

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

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

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

2
RBT

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

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

問題解決

2
atik sarker

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

uninstall-package ActionMailer
install-package ActionMailer

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

2
LiamB

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

2
Nemo

アプリケーションをクリーニング、ビルド、または再構築するか、単にTemporary ASP.NET FilesC:\ Users\YOUR USERNAME\AppData\Local\Temp

これは魔法のように機能します。私の場合、と言うアセンブリバインディングの問題がありましたファイルblablablablaをロードできませんでした

ソリューション2は http://www.codeproject.com/Articles/663453/Understanding-Clean-Build-and-Rebuild-in-Visual-St としても見ることができます。

1
Ifeanyi Chukwu

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

1
SAinCA

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

1

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

0
h3n

場合によっては、C:\ Windows\Temp\Temporary ASP.NETフォルダーも削除する必要があります。

0
Eriendel

私の場合、COMで見えるDLLをコンパイルしたかった。問題は、このDLLの古いバージョンが次の場所にあることでした。

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

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

0
dummy

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

0
Kaushal

他の誰かがWiXツールセットを使用している場合、インストーラプロジェクトには、ソリューションから最近削除された古いプロジェクトへの参照があることがわかりました。私が構築しようとしたソリューションには多くのプロジェクトがあり、メッセージはどのプロジェクトが構築に失敗したかを示していませんでした(そして、同様に失敗していました).

0
rusty

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

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

0
JTC

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

C:\Users\%username%\AppData\Local\Assembly\
0
Caleb Mauer

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

0
Vijay Kumbhoje

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

0