2011-03-17 8 views
0

私はSystem.AddInからいくつかのアドインを持っています。 AddInStore.Rebuildを実行している場合でも、 BadImageFormatExceptionを取得する

string[] warnings = AddInStore.Rebuild(addInRoot); 

その後、私は戻って警告文字列を取得します:

ファイルが有効なバイナリではありません: D:\ AK \ AS \ ConverterModule出力の\アドイン\ \ CompositeFileZip \ ファイル名7z.dll: D:AK \ \ AS \ ConverterModule出力\ \アドインComposi \ ...

7z.dllは、アドインアセンブリではなく、7ZファイルそのCompositeFileZipアドインを使用します。再構築機能が正確に何をしているのかよく分かりません。アドインとして7z.dllを追加しようとしていますか?

答えて

5

私はSystem.AddInまたは7zコンポーネントに精通していませんが、BadImageFormatExceptionの非常に一般的な原因が、64ビット(またはネイティブの64ビット.dllに依存する)としてマークされたアセンブリを読み込もうとしています。 32ビットシステムで、またはその逆になります。

7z.dllとその依存関係は、BadImageFormatExceptionが表示されているシステムと同じアーキテクチャで構築されているかどうかを確認してください。

 
    C:\Program Files\7-Zip>dumpbin /headers 7z.dll | findstr /i machine 
      8664 machine (x64) 
+1

を...または.NETアセンブリではありませんアセンブリをロードする:あなたは7z.dllのヘッダをダンプして、マシンアーキテクチャを探してVisual Studioコマンドプロンプトからこれを行うことができます。 – adrianbanks

+0

私はあなたが持っている行を取得します。その後、私は32ビット用のビルドである7z.dllに切り替えましたが、BadImageFormatExceptionはまだそこにあります。プロジェクトは「任意のCPU」用にビルドされています。 –

+0

Bummer。他に提案がなくて私のものだったら、.NET Frameworkのソースデバッグを有効にし、例外が発生したときにブレークするようにデバッガを設定します。次に、BadImageFormatExceptionが発生した時点で詳細を確認できます。詳細については、[このリンク](http://blogs.msdn.com/b/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx)を参照してください。 .NET FWソースのデバッグを可能にする。例外が発生するとすぐに中断するには、** Debug |例外**をVSに入れ、**共通言語ランタイム例外**の隣の**スロー**チェックボックスをオンにします。 –

関連する問題