3

次のコードの最後の行で例外が発生します (フォーマットについては申し訳ありませんが、他の方法で投稿することはできません)。

LeadHelper.Unlock(); 
RasterCodecs codecs = new RasterCodecs(); 
string imageLocation = @"...path...\Barcodes.tif"; 
RasterImage srcImage = codecs.Load(imageLocation); 

例外は次のとおりです。

System.BadImageFormatException: ファイルまたはアセンブリ 'Leadtools.Codecs, Version=17.5.0.0, Culture=neutral, ...........' またはその依存関係の 1 つを読み込めませんでした。不正な形式でプログラムをリードしようとしました。

この例外を取り除こうとする努力の中で、私はすべての可能な Leadtools.Codecs.* DLL、Leadtools.dll を参照しました...参照できる可能性のあるほとんどすべての Leadtools dll を参照しました。

私のインクルードには、Leadtools、Leadtools.Barcode、Leadtools.Codecs、Leadtools.Codecs.Tif、Leadtools.Codecs.Fax、および Leadtools.Forms を含めました。

これは、バーコードを読み取るために作成しているテスト コンソール アプリ用です... VS2010 C#。

また、私は間違いなくファイルにアクセスできます。これはネットワークファイルへの参照ですが、ローカルで参照しようとしたり、アクセス許可を確認したりしました。

4

7 に答える 7

6

このメッセージは通常、64ビットシステムに32ビットDLLをロードしようとしている、またはその逆を試みていることを意味します。

正しいバージョンのDLLとその依存関係があることを確認してください。

于 2012-09-04T14:05:49.770 に答える
3

宛先:

LEADサポートのダウドです。イメージング .NET DLL のさまざまなビルドについては、各 DLL (Silverlight または WinRT ビルドを除く) の 4 つの異なるコピーがあります。

  • 32 ビット .NET 4
  • 64 ビット .NET 4
  • 32 ビット .NET 2 から 3.5
  • 64 ビット .NET 2 から 3.5

これは、さまざまなユーザーがここに投稿した提案がほとんど正しいことを意味します。プラットフォームとフレームワークのバージョンに適した DLL ビルドを使用する必要があります。それでもツールキットで問題が発生する場合は、support@leadtools.com にメールをお送りください。問題の切り分けに取り組みます。通常は同営業日以内、遅くとも翌日には返信いたします。

また、PATH または GAC に DLL の複数のコピーが含まれていると、間違ったビルドがロードされる可能性があるため、実行時に正しい DLL がロードされていることを確認してください。

Ivan Leonenko の回答に関する最後のメモ: 提示された情報は、マルチメディア ツールキット フィルタおよびコーデックのユーザーにとって正しいものです。ただし、tnw は、別の .NET DLL であり、「ラッパー」を持たない当社のイメージング .NET アセンブリを使用しているようです。

于 2013-05-16T12:34:52.753 に答える
2

BadImageFormatException は、プラットフォームの不一致が原因で発生します。Leadtools アセンブリが x64 用にコンパイルされたときに、プロジェクトで x86 をターゲットにしている場合と、その逆の場合のどちらかです。

これを修正するには、Visual Studio でプロジェクトのプロパティを確認してください。プラットフォームは [ビルド] タブにあり、x86、x64、または AnyCPU のようなものになります。

別のプラットフォームを追加するには、構成マネージャー (ビルド メニューの下にあります) を使用する必要がある場合があります。

詳細については、Microsoft のサポート記事をご覧ください。

于 2012-09-04T14:09:18.577 に答える
0

そのdllの間違ったフレームワークをターゲットにしているようです。dllを参照しているcsprojのフレームワークを切り替えてみてください。

どのフレームワークのリードツールが組み込まれているかはわかりませんが、他のすべてのフレームワーク (4.0 クライアント、4.0、2.0 など) で構築してみてください。

詳細情報: http://msdn.microsoft.com/en-us/library/bb398202.aspx

于 2012-09-04T14:00:30.083 に答える
0

Microsoft Visual C++ 2008 & 2010 SP1 Redistributable Package (x86) をインストールしました。

次に、IIS でアプリケーション プールの 32 ビット アプリケーションを True として有効にしました。それは完璧に機能しました。

于 2018-08-20T22:10:07.253 に答える
0

間違ったアセンブリを参照しようとしています。4.0 または 2.0 .NET Framework 用の LEAD SDK の dist フォルダーからケースのラッパーを試す必要があります。

私は彼らのスクリーン キャプチャとコーデックを使用し、必要なファイル (.NET ラッパー) のみを参照しました。

ただし、LEAD のコア ファイル (Leadtools.Multimedia.dll、ltmm.manifest、ltmm175.dll、DSKernel2.dll) は個別に配布する必要があります。最後の 2 つは、システム (regsvr32) に登録する必要があります。

Leadtools.Multimedia.dll は、コンポーネントをロック/ロック解除するプロジェクトで参照する必要があります。

于 2012-09-04T14:27:10.467 に答える