3DパーツがDirectX9で処理されるWPFアプリケーションを開発しています(WPFを使用すると十分な速度で実行されなかった多くの3D)。
問題は、アプリケーションが「任意のCPU」を構成としてリリースされ、ユーザーが64ビットウィンドウで実行すると、direcX部分がクラッシュすることです(System.BadImageFormatException)。どうやら、directX部分に含まれているdllは64ビットウィンドウでは使用できません。
これは、アプリケーションで使用する他の3番目の部分のdllで発生しましたが、ユーザーが64ビットWindowsマシンで実行している場合は、実行時にdllをx64用に構築されたdllに変更することで解決しました。x64用のDirectX9dllがどこにあるか知っている人はいますか?それらが存在する場合。
私が必要なものは次のとおりです。
- Microsoft.DirectX.Direct3D
- Microsoft.DirectX.Direct3DX
- Microsoft.DirectX
それらが存在しない場合、他の方法で問題を解決できますか?アプリケーションがClickOnceを介してリリースされ、構成を変更するとClickOnceが機能しなくなるため、構成をx86に変更できません(構成はClickOnceキーに含まれています)
私はWPFアプリケーションによってホストされているWinformsパーツを使用しており、winformsパーツは私が求めているDirectXdllを使用していることを付け加えておきます。これは、WPF:s 3Dを使用するよりも、WPFで多くの3Dメッシュを表示するためのはるかに優れた高速な方法でした。残念ながら、代わりにこの問題が発生しました。