5

エラーメッセージは次のとおりです。

ファイルまたはアセンブリ 'file:///myFile.dll' またはその依存関係の 1 つを読み込めませんでした。不正な形式のプログラムをロードしようとしました。行 171、位置 5. FrmApproveProfiles.resx

もちろん、ファイルは「myFile.dll」という名前ではありません。奇妙なことに、エラーは明らかに私のフォームの 1 つのリソース ファイル内にありますが、このフォームはメイン アプリの一部であり、前述の DLL ファイルとは完全に分離されています。この DLL ファイルはファイルとして読み込まれます (ソリューション内のプロジェクトのビルドではありません)。

画像 (png、bmp などの任意の画像) をフォーム (DLL ではなくメイン アプリ) にある ImageList にロードすると、エラーが発生します。画像を表示してプログラムの他の場所で使用できるため、画像が破損していないことはわかっていますが、これが原因で別の DLL が読み込まれない理由について困惑しています。他のアセンブリに何をロードするかを気にする必要があるのはなぜですか?

これには完全に困惑しました。誰か提案がありますか、以前にこれに遭遇しましたか?

編集- このエラーは、ソリューションをビルドしようとすると発生します。ビルドは、デバッグ モードとリリース モードの両方で失敗します。

4

3 に答える 3

7

回避策

  1. Designerでフォームを開き、必要なGUIを変更します。デザイナーを閉じて保存
  2. プロジェクトをコンパイルし、RESXコンパイルエラーを受け取ります(Imagelistを含むフォームのみがこの問題を抱えているはずです)
  3. resxコンパイルエラーをダブルクリックして、resxファイルを開きます。
  4. imagestreamの一番上までスクロールします。
  5. 画像ストリームの一番上の行を編集します AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4wAAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w

  6. resxファイルを閉じて保存し、再コンパイルします。

**注:唯一の違いは、末尾の文字j00LjAuMC4wですj0yLjAuMC4w

これは、デザイナーモードでフォームを開くたびに実行する必要があります。

次のリンクも確認してください:http: //connect.microsoft.com/VisualStudio/feedback/details/532584/error-when-compiling-resx-file-seems-related-to-beta2-bug-5252020

于 2011-12-12T19:09:01.823 に答える
1

含めたアセンブリは、動的にも静的にも、他のアセンブリを参照できます。場合によっては、ローダーが間違っているか、Visual Studioが間違っていることがあります。その場合、中間ファイルをクリーンアップするのに役立ちます([ビルド]> [クリーン])。

この参照を追加できない場合、または追加されてもロードできない場合は、Fusionログを使用してどこが間違っているかを確認することを検討してください。

注1:何も問題がなく、デバッガーだけが混乱していることに気付いた状況です。これを自分で確認するには、VisualStudioの外部でプロジェクトをリリースモードで実行します。

注2:アセンブリを読み込めないことがキャッチされた例外である場合もありますが、デバッガーはそれを示します([デバッグ]> [例外]および[オプション]>[デバッグ]で設定を確認してください)。

編集:上記のコメントから、これは64ビットの問題にすぎないようです。これは、Microsoftからのこのバグレポートで説明されています(クレジットFlorian Gerhardt)。同様のシナリオの一般的なトラブルシューティングに使用される可能性があるため、この回答は残しておきます。

于 2011-03-10T20:08:32.263 に答える
0

アセンブリの読み込みの問題が疑わしい場合は、フュージョン ログを調べてください。

于 2011-03-10T20:02:31.920 に答える