見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません
ncover を介して nunit を実行すると、これが取得されます。何か案が?
これはアセンブリ間の不一致です。アセンブリから参照される DLL に、予期されるメソッド シグネチャがありません。
ソリューションをクリーンアップし、すべてを再構築して、もう一度やり直してください。
また、これが GAC にあるものへの参照である場合は注意してください。何かが間違ったバージョンを指している可能性があります。(各参照のプロパティを通じて) 正しいバージョンが選択されていること、または特定のバージョンが false に設定されていることを確認してください。
私の場合、wcf レスト サービス プロジェクトでは、要求された dll がある web.config にランタイム セクションを追加する必要がありました。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" />
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
.
.
.
<runtime>
すべてのランタイム部分を削除することで解決した私の問題
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
これは通常、テスト環境の DLL のいずれかのバージョンが開発環境と一致しない場合に発生します。
ソリューションをクリーンアップしてビルドし、すべての DLL をエラーが発生している環境に移動して修正する必要があります
共有フォルダーを介して別のコンピューターからプロジェクト ファイルにアクセスすると、同様の問題が発生しました。私の場合、クリーン+再構築は役に立ちませんでした。出力ディレクトリから bin および objects フォルダーを削除する必要がありました。
私の特定の状況ではCreateObject
、VBScriptで実行した結果としてこれを取得しました。私の場合の原因は、GACにあるアセンブリのバージョンであり、コンパイルしたものよりも古いものでした。(以前の問題を解決しようとして、アセンブリをGACにインストールしました)。
したがって、COM表示クラスを使用している場合は、新しいアセンブリをRegASMに登録する前に、必ず古いバージョンのアセンブリをGACから削除してください。
ここに別のケースがあります。VS2010/.NET 4 で初めて XML ファイルをオブジェクトに逆シリアル化するときに、Managed Debugging Assistant からこのエラーが発生しました。オブジェクトのクラスを含む DLL は、ビルド後のイベント (通常の Microsoft スタイルのもの) で生成されます。同じソリューションのいくつかのプロジェクトで非常にうまく機能しましたが、別のプロジェクトでそれを行うと問題が発生しました。エラー テキスト:
BindingFailure が検出されました メッセージ: ID 1 の AppDomain の 'LoadFrom' バインド コンテキストで、表示名 MyProjectName.XmlSerializers のアセンブリを読み込めませんでした。失敗の原因は次のとおりです: System.IO.FileLoadException: ファイルまたはアセンブリを読み込めませんでしたMyProjectName.XmlSerializers、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null' またはその依存関係の 1 つ。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)
ここでいくつかの回答がプラットフォームの不一致を示唆していたため、3 つのプロジェクトとソリューションで「混合プラットフォーム」構成が選択され、3 つのプロジェクトが AnyCPU ではなく x86 用にコンパイルされていることに気付きました。プラットフォーム固有のコードはありません (ただし、一部のベンダー提供の DLL はいくつかの x86 ライブラリに依存しています)。x86 のすべてのオカレンスを AnyCPU に次のように置き換えました。
for a in $( egrep '(x86|AnyCPU)' */*.csproj *.sln -l ) ; do echo $a ; sed -i 's/x86/AnyCPU/' $a ; done
その後、プロジェクトはビルドされますが、コードを実行またはデバッグするためのすべてのオプションがグレー表示されます。VSを再起動しても役に立ちません。
念のため、x86 ライブラリへの参照を git で元に戻しましたが、コンパイルするすべてのコードに対して AnyCPU を保持しました。
次の F5 キーまたは [デバッグの開始] ボタンが Winform アプリケーションでグレー表示されますか? 最初のプロジェクトをアンロードして再ロードしました(最初の問題が最初に発生したプロジェクトでもありました)。
その後、すべてが元の位置に戻りました。プログラムは最初のエラーなしで動作します。
http://www.catb.org/jargon/html/R/rain-dance.html、http://www.catb.org/jargon/html/V/voodoo-programming.htmlまたはhttp://wwwを参照してください。 .catb.org/jargon/html/I/incantation.htmlおよびそこへのリンク。
私の WPF プロジェクトは 3 つのカスタム DLL を参照していました。それらの1つを更新し、参照を削除して、新しいdllへの参照を追加しました。また、参照のプロパティに正しいバージョン番号が表示されました。エラーなく再構築されました。
しかし、アプリケーションが実行されているときに、古いバージョンに言及して、「見つかったアセンブリのマニフェスト..」というエラーが発生しました。
何時間も解決策を探し、このようなスレッドをいくつか読んだ後、他の dll を思い出しました。他の dll の 1 つが古いバージョンを参照していたため、エラーが発生しました。2 番目の dll を再構築し、WPF プロジェクトで両方の参照を再作成した後、失敗はなくなりました。
他の dll を確認することを忘れないでください。
Designer で作業中にこのエラーが発生しました。私はVS 2012で開発していましたが、過去数日間で2017に「アップグレード」しました。解決策は、VSを閉じて再度開くことでした。
これは、参照マネージャーが機能しない、他の場所で報告されているバグに関連している可能性がありますか? その場合、ソリューション エクスプローラーで参照を追加しようとすると、次のエラー メッセージが表示されます。
「COM コンポーネントへの呼び出しからエラー HRESULT E_FAIL が返されました。」
私の回避策は、ソリューションを閉じ、VS2012 で再度開き、参照を追加し、2012 を閉じて、2017 を再度開くことでした。
Visual Studio にコンポーネントを追加しようとしてこのエラーが発生した場合、- Microsoft.VisualStudio.TemplateWizardInterface
- (変な開発ツールをインストールしようとした後)
この解決策を検討してください(larochaの厚意による(ありがとう、あなたが誰であれ)):
Microsoft.VisualStudio.TemplateWizardInterfac
e"<dependentAssembly>
<!-- assemblyIdentity name="Microsoft.VisualStudio.TemplateWizardInterface" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" / -->
<bindingRedirect oldVersion="0.0.0.0-8.9.9.9" newVersion="9.0.0.0" />
</dependentAssembly>