2013-02-02 5 views
14

現時点では、Googleのソリューションでは解決できなかった問題が発生しています。これまでに何も働いていません。私がLeap MotionコードをコンパイルしてNaoqi C#ライブラリをインポートすると、うまく動作します。実際にコード行でロボットに接続しようとすると、プログラムがクラッシュします。私のプログラムは、任意のCPU用に構築されています。 .dllはLeapライブラリとNaoQiライブラリで参照され、.dllはデバッグフォルダとプロジェクトフォルダに配置されています。私はこの時点で何が問題なのか手がかりにしていません。NaoQiと飛び問題: 'System.BadImageFormatException'型の未処理の例外...ファイルやアセンブリをロードできませんでした

誰かがそれを理解できますか?私はこの作業をするのがとてもうれしいです。ここで

は、最初のエラーメッセージで、それはその後、壊れたり続けるように私に尋ねる:

An unhandled exception of type 'System.BadImageFormatException' occurred in LeapCSharp.NET4.0.dll 

Additional information: Could not load file or assembly 'naoqi-dotnet4, Version=1.14.0.218, Culture=neutral, PublicKeyToken=b9b4e24bd78100d6' or one of its dependencies. An attempt was made to load a program with an incorrect format. 

いずれかの方法で、プログラムがクラッシュを。これは、コンソールログのこの時点でのテキストです。

'NaoLeap.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll' 
'NaoLeap.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities\11.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.dll' 
'NaoLeap.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll' 
'NaoLeap.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities.Sync\11.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.Sync.dll' 
'NaoLeap.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll' 
'NaoLeap.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.Debugger.Runtime\11.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Debugger.Runtime.dll' 
'NaoLeap.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Users\Grace\Documents\Visual Studio 2012\Projects\NaoLeap\NaoLeap\bin\Debug\NaoLeap.vshost.exe' 
'NaoLeap.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll' 
'NaoLeap.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml.Linq\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.Linq.dll' 
'NaoLeap.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Data.DataSetExtensions\v4.0_4.0.0.0__b77a5c561934e089\System.Data.DataSetExtensions.dll' 
'NaoLeap.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Microsoft.CSharp\v4.0_4.0.0.0__b03f5f7f11d50a3a\Microsoft.CSharp.dll' 
'NaoLeap.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_64\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll' 
'NaoLeap.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll' 
The thread 'vshost.NotifyLoad' (0x440) has exited with code 0 (0x0). 
The thread '<No Name>' (0x1914) has exited with code 0 (0x0). 
The thread '<No Name>' (0xa90) has exited with code 0 (0x0). 
The thread 'vshost.LoadReference' (0x1a08) has exited with code 0 (0x0). 
'NaoLeap.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Users\Grace\documents\visual studio 2012\Projects\NaoLeap\NaoLeap\bin\Debug\NaoLeap.exe', Symbols loaded. 
'NaoLeap.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll' 
'NaoLeap.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Accessibility\v4.0_4.0.0.0__b03f5f7f11d50a3a\Accessibility.dll' 
'NaoLeap.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Users\Grace\documents\visual studio 2012\Projects\NaoLeap\NaoLeap\bin\Debug\LeapCSharp.NET4.0.dll' 
A first chance exception of type 'System.BadImageFormatException' occurred in LeapCSharp.NET4.0.dll 
An unhandled exception of type 'System.BadImageFormatException' occurred in LeapCSharp.NET4.0.dll 
Additional information: Could not load file or assembly 'naoqi-dotnet4, Version=1.14.0.218, Culture=neutral, PublicKeyToken=b9b4e24bd78100d6' or one of its dependencies. An attempt was made to load a program with an incorrect format. 
'NaoLeap.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll' 
The program '[3484] NaoLeap.vshost.exe: Managed (v4.0.30319)' has exited with code 0 (0x0). 
The program '[3484] NaoLeap.vshost.exe: Program Trace' has exited with code 0 (0x0). 

私はfuslogvwを使用しようとしました。プログラムがクラッシュした後にfuslogvwがリフレッシュされたときの失敗したアセンブリの2つのログレポートを次に示します。

1)

<meta http-equiv="Content-Type" content="charset=unicode-1-1-utf-8"><!-- saved from url=(0015)assemblybinder: --><html><pre> 
*** Assembly Binder Log Entry (2/1/2013 @ 7:24:49 PM) *** 

The operation was successful. 
Bind result: hr = 0x0. The operation completed successfully. 

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll 
Running under executable C:\Users\Grace\Documents\Visual Studio 2012\Projects\NaoLeap\NaoLeap\bin\Debug\NaoLeap.vshost.exe 
--- A detailed error log follows. 

=== Pre-bind state information === 
LOG: User = Grace-PC\Grace 
LOG: DisplayName = Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
(Fully-specified) 
LOG: Appbase = file:///C:/Users/Grace/documents/visual studio 2012/Projects/NaoLeap/NaoLeap/bin/Debug/ 
LOG: Initial PrivatePath = NULL 
LOG: Dynamic Base = NULL 
LOG: Cache Base = NULL 
LOG: AppName = NaoLeap.vshost.exe 
Calling assembly : System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089. 
=== 
LOG: Start validating all the dependencies. 
LOG: [Level 1]Start validating native image dependency mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089. 
WRN: No matching native image found. 

</pre></html> 

2)

<meta http-equiv="Content-Type" content="charset=unicode-1-1-utf-8"><!-- saved from url=(0015)assemblybinder: --><html><pre> 
*** Assembly Binder Log Entry (2/1/2013 @ 7:24:50 PM) *** 

The operation was successful. 
Bind result: hr = 0x0. The operation completed successfully. 

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll 
Running under executable C:\Users\Grace\Documents\Visual Studio 2012\Projects\NaoLeap\NaoLeap\bin\Debug\NaoLeap.vshost.exe 
--- A detailed error log follows. 
=== Pre-bind state information === 
LOG: User = Grace-PC\Grace 
LOG: Where-ref bind. Location = C:\Users\Grace\Documents\Visual Studio 2012\Projects\NaoLeap\NaoLeap\bin\Debug\NaoLeap.exe 
LOG: Appbase = file:///C:/Users/Grace/documents/visual studio 2012/Projects/NaoLeap/NaoLeap/bin/Debug/ 
LOG: Initial PrivatePath = NULL 
LOG: Dynamic Base = NULL 
LOG: Cache Base = NULL 
LOG: AppName = NaoLeap.vshost.exe 
Calling assembly : (Unknown). 
=== 
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load(). 

</pre></html> 
+0

驚いたことにあなたのvsを再起動しようとすると、それは私と一緒に働いた!! –

答えて

34

vendor's documentationからファイルまたはアセンブリ「naoqi-dotnet4

をロードできませんでしたNAOがネイティブ含まれていることをかなり明確ですC++コードであり、x86(32ビットコード)をターゲットにして構築する必要があります。ただし、メインEXEを64ビットモードで実行しています。 BadImageFormatExceptionが発生すると、64ビットプロセスは32ビットのネイティブコードを含むアセンブリをロードできません。

EXEプロジェクトの[プロパティ]、[ビルド]タブを右クリックします。プラットフォームのターゲットを「x86」に変更します。

+0

それを修正しました!以前は、プロジェクトビルド設定でx86に変更していました。本当の修正は、「スタート」デバッグボタンの横にある「構成マネージャー...」を選択してプラットフォームをx86に変更したときでした。 –

+0

プラットフォームターゲットx86で構築していた外部プロジェクト(私は64ビットマシンで作業しています)を追加したbadimageformatexceptionと同様の問題がありました。 - 私は任意のCPUにビルドするために外部プロジェクトを設定し、すべてが良いです:) – phareim

+1

ソリューションプラットフォーム名で** ** ** tinker、それは.NETプロジェクトには関係ありません。私が設定した設定だけが重要です。リリース構成でもそれを変更することを忘れないでください。 –