最近、C#ソリューションで次の例外に遭遇しました。
エラー2ファイルまたはアセンブリ 'Newtonsoft.Json、Version = 3.5.0.0、Culture = neutral、PublicKeyToken = b9a188c8922137c6'またはその依存関係の1つをロードできませんでした。パラメータが正しくありません。 (HRESULTからの例外:0x80070057(E_INVALIDARG))
これは、私のコードやアセンブリの名前(この場合はNewtonsoft.Json
など)に依存しません。
ソリューションからこのdllを削除すると、コンパイラは同じ例外の別のDLLについて通知します。だから私はPCで何かシャウドをオフ/オンにする必要があります:)
参照されている破損したアセンブリのように見えます。
両方をクリアします:
プロジェクトの\ binフォルダー
一時フォルダー(Windows 7ではC:\Users\your_username\AppData\Local\Temp\Temporary ASP.NET Files
である必要があります)
エラーが引き続き発生するかどうかを確認します
X64を実行しているかどうかによっては、さらに2、3個のスポットをクリーンアップする必要があります。ユーザーディレクトリをクリーンアップするだけでは不十分です。
このリストは、他のバージョンのフレームワークがインストールされているかのように増えます。
クリアしなければならなかった
C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files
そうして初めて問題は解決しました。
確実にクリアするものを知るには、次のレジストリキーを追加します。
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**.
プロジェクトの一時的なフレームワークファイルをクリアします。
C:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files \
また、packagesディレクトリをクリアして、NuGetが見つからないパッケージを再ダウンロードできるようにすることもできます。
それは私のために問題を解決しました
これらのフォルダからすべてのファイルを削除します。
C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files
このフォルダーをクリアするだけです:(Windows x64のみ)
C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
ソース管理から最新のバイナリセットを取得することが役立ちました。
ありがとう
アレックス、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
this answerのように、マシンでホストされているすべての.Netフレームワークに関連するASP .Netランタイムの一時ディレクトリをクリアすることについて、多くの技術者が投稿しています。しかし、すべての.Netフレームワークのすべての一時作業ディレクトリを盲目的にクリアする必要がある理由について、明確なロジスティックスを知っておく必要があると思います。私によると、そうではないはずです。
私のアドバイスは、この問題を解決するには、ピンポイントのディレクトリクリアアプローチを試すべきだということです。どのディレクトリをクリアするかをどのように知っていますか?
Manage Application
]-> [Advanced Settings...
]をポイントして、[Advanced Settings
]ウィンドウを開きます。DefaultAppPool
です。Application Pools
ノードに移動します。次に、アプリプールで実行されている.Net CLRバージョンを確認します。私の場合、以下に示すようにv4.0です。アプリプールでホストされているCLRバージョンはv4.0であるため、以下のように、ASP .NET v4.0に関連するフォルダー内の一時ファイルのみを適切にクリアしました。
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
以上です。私の問題は解決しました。
Lesson learnt:これは、Webサイトで使用されているすべての一時ファイルが複数のディレクトリに分散されていないが、一度に配置されているという事実を示していますアプリプールによって参照されます。そのため、その特定のフォルダーのみをクリアする必要があります。
このパスからアプリケーションの一時データを削除するだけです
C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files
問題解決
私はここで同じ問題を抱えていました-上記の解決策は機能しませんでした。問題はActionMailerにありました。次のアンインストールとインストールを実行しましたnugetコマンド
uninstall-package ActionMailer
install-package ActionMailer
私の問題を解決し、うまくいけば他の誰かを助けるでしょう。
これは、COMラッパーdllを参照しているときに発生する可能性があります。 Visual Studioプロジェクト内の[参照設定]で、参照されているCOMラッパーdllを選択し、次のプロパティ値が設定されていることを確認します: "Embed Interop Types":Falseおよび "Specific Version":False。
アプリケーションをクリーニング、ビルド、または再構築するか、単に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 としても見ることができます。
2013年5月1日時点でVS2010シェルを使用するSQL Server 2012のデータツールを使用している場合は、構成マネージャーの設定を確認してください。サーバー名をワークフローからxCPWorkflowに変更するだけで、まったく同じものが生成されましたパラメーターが正しくありません(HRESULTからの例外:0x80070057(E_INVALIDARG))メッセージ。
C:\ Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Filesをクリアするとうまくいきました。将来的に問題を回避するために削除プロセスを自動化することを考えています。
私の場合、プロジェクトプロパティのIISExpressポート番号を変更すると、問題が解決しました。
場合によっては、C:\ Windows\Temp\Temporary ASP.NETフォルダーも削除する必要があります。
私の場合、COMで見えるDLLをコンパイルしたかった。問題は、このDLLの古いバージョンが次の場所にあることでした。
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
したがって、Visual Studioは、登録しようとしたときに、新しくコンパイルされたバージョンではなく、このバージョンをロードしました。
一時フォルダー(C:\ Users\user_name\AppData\Local\Temp\Temporary ASP.NET Files\projectフォルダー)からすべてのファイルを消去します
他の誰かがWiXツールセットを使用している場合、インストーラプロジェクトには、ソリューションから最近削除された古いプロジェクトへの参照があることがわかりました。私が構築しようとしたソリューションには多くのプロジェクトがあり、メッセージはどのプロジェクトが構築に失敗したかを示していませんでした(そして、同様に失敗していました).
この問題は、参照クラスライブラリの.Netランタイムバージョンに関連しています(参照を展開し、ライブラリを選択して、「ランタイムバージョン」を確認します。VisualStudioプロジェクトをv4.5にアップグレードした後、Antlr3.Runtimeで問題が発生しました。 NuGetを使用してMicrosoft ASP.NET Web Optimization Frameworkをアンインストールしました(一連の依存関係により、Antlr3を直接アンインストールできなかったため)
次に、NuGetを使用してMicrosoft ASP.NET Web Optimization Frameworkを再インストールしました。これにより、正しいランタイムバージョンが再インストールされました。
Microsoft Office用のSiemens Teamcenter 10 Clientのユーザーに、別のDLLについて同じエラーを表示させました。他の答えはどれもうまくいきませんでした。解決策は、フォルダを削除することでした
C:\Users\%username%\AppData\Local\Assembly\
アプリケーションがC:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\
フォルダーで依存フレームワークを見つけられなかったため、同じエラーに直面しました。上記の場所に必要なフレームワークを追加したVisual Studioを修復するだけで、正常に動作します。
MVCでコントローラーを作成するときにこの問題が発生しました。バージョン.netフレームワークを変更しました。問題は解決しました