2012-04-17 9 views
1

IntelliLock 1.5で私のdllのプリズムモジュールの1つが読み込みを停止(1)した後、エラーメッセージが表示される:「不正な形式のプログラムを読み込もうとしました。 (HRESULTからの例外:0x8007000B) "IntelliLock 1.5不正な形式のプログラムを読み込もうとしました。 (HRESULTからの例外:0x8007000B)

まず、いくつかの共有オブジェクトを保持する移植可能なライブラリ(.net、Silverlight 4)への参照がありました。ポータブルライブラリにはUIはなく、System.WindowsのDLLは参照されていませんでしたが、このエラーは「Cant load referenced library System.Windows」のようなものでした。しかし、IntelliLockをチューニングして問題がどこにあるのかを把握しようとすると、「不正な形式のプログラムをロードしようとしました。(例外:HRESULT:0x8007000B例外」)エラーが発生します。

まず、私はポータブルdllを参照する際の問題を考えました。私はこのライブラリを通常の.netと置き換えますが、エラーは同じです。

私は.Net 4 Client Profileを使用しています。 WPF、C#、プリズム4、単一性。

これを修正する方法はありますか?我々はいくつかの時間前に似た(??)問題に遭遇し

+1

これはターゲットプラットフォームである可能性があります。明示的にx86またはx64でコンパイルしてみてください。 –

+0

はい、私はこれを知っています、すべてのアセンブリはx86です。そして、この特定のdllを難読化する前に問題はありません。 –

+0

私はサポートのためにIntellilockに行く必要があると思います。それは難読化ツールのバグのようです。私たちがあなたを助けることができると疑う前に、誰かがこの特定の問題を見ていない限り。 – Rup

答えて

1

ので、私はお勧め:すべての依存関係が満たされた場合に

1)を確認してください。 DependencyWalkerを実行して、赤い線がないことを確認してください。何も見当たりません。例えば、IEShims.dllにmissing と表示されることがありますが、は必要ありません。 x64)のデニス・Kucherovとして正しいカンプ

2)すでに悲しい上:親および/または子(依存)オブジェクトがコンパイルされた方法を確認してください。 x86でコンパイルされた参照用C++ DLLをロードするために、デフォルトでコンパイルされた.NETプロジェクトをx64用にコンパイルした後、例外は発生しません...

3)ハードコアレベル - SysinternalsからProcess Monitorを実行し、見つからない/見つからないエラーがある場合はそれを確認します。それは時々あなたが実際にOKをロードするロードしようとしているDLL ...

私の推測loooongリストだが、それ自体は

P.S.を提示していない他のいくつかのDLLに依存しますあなたは.NET Client Profileを一度試してみてください。それが役立つかどうかを確認してください。もしあれば、ターゲットcompにインストールされている.NET Clientのプロファイルを再確認してください。

+0

ここでの主なポイントは、すべてうまく動作しますが、IntelliLock難読化の後に1つの.dllモジュールです。 –

+0

さらに、dllはポータブルdll参照で難読化されている場合にのみ動作しません。 –

+0

ieshims.dllに赤い光を投げた依存関係のウォーカー2.2で確認することは、私の状況において本当に重要ですか? –

1

Rupが提案したように、これは完全にInTelliLockのバグ。私はいくつかのライブラリのロック設定を無効にするだけでそれを克服することができました。良いことは、問題が難読化ではなく論理をロックすることであったことです。問題を解決するには数日かかりました。

私はまだサポートチームからの回答はありません。前にも言いましたが、実際にはそれを期待していませんでした。

関連する問題