System.io.FileNotFoundException
-
30-09-2019 - |
質問
これは長い話です。最近、DirectXを使用するVisual StudioでWin32アプリケーションを構築しました。他のマシンで動作することを確認するために友人に送信しました。彼らはすべて.NETをインストールしていましたが、アプリは私の友人全員のために機能しませんでした。
2つのケースでは、「ファイルまたはアセンブリMicrosoft.directx.directinputバージョン1.0.29 ...」プログラムを実行しようとしたときのエラーをロードできませんでした。
私は彼らが.dllの他のバージョンを持っているに違いないと考え、いくつかのチェックの後、私の参照が固定バージョンにあることがわかりました。 「固定バージョン」プロパティをすべてのDirectXDLLにFalseに変更しましたが、アプリケーションを実行しようとしたときにエラーが発生しました。
最後に、アプリを使用して同じフォルダー内のすべてのDLLをコピーしようとしましたが、DirectXエラーはなくなりましたが、代わりに「System.io.FileNotFoundException」を取得しました。画像からdirect3d.textureを作成します(画像へのリンクは正しかった)。
上記の問題を修正するためのヒントを手伝ってくれるなら、私はそれを大いに感謝します!
解決
Managed DirectXを使用しているように見えますが、一部の友人はおそらくインストールしていないでしょう。私が知る限り、MDXの再配布可能なパッケージはもう利用できません。 (とにかくMicrosoftからではなく、どこかで見つけることができるかもしれません)
Managed Directxは基本的に時代遅れであり、多くの場合 XNA より良い選択です。
他のヒント
ManagedDirectxを使用している場合、この問題を修正する迅速で汚い方法があります。そして、それはManagedDirectx DLLを同じディレクトリにコピーするだけです。 MSは、それが機能しないと言います、そして、それは間違いなく生産Envsにあまり適していません。しかし、ほとんどの場合は機能します。
DLLは少なくとも次のとおりです。
Microsoft.DirectX.Direct3D.dll
Microsoft.DirectX.Direct3DX.dll
Microsoft.DirectX.dll
あなたの問題は今までに解決されるかもしれません。
私も2日間同じ問題を経験していましたが、ついに解決しました。私はウェブ上で提案された非常に多くのソリューションを試しましたが、私にとって何もうまくいきませんでした。私のプロジェクトは、Microsoft.directx.direct3dx.dllを参照していた別のプロジェクトを参照しています。プロジェクトを実行したとき、私は例外を得ました:System.io.FileNotFoundException:ファイルまたはアセンブリ 'microsoft.directx.direct3dx.dll'またはその依存関係の1つをロードできませんでした。指定されたモジュールが見つかりませんでした。
このDLLは「その依存関係の1つ」を検索しており、マシンにDirectXインストールがなかったため、それらを見つけることができませんでした。したがって、私にとっての解決策は、DirectXをインストールすることでした。
DirectX Webインストーラーの次のリンクを参照してください。http://www.microsoft.com/en-in/download/details.aspx?id=35
これが同じ問題に直面している他の人に役立つことを願っています! :)