System.IO.FileNotFoundException - PullRequest
       10

System.IO.FileNotFoundException

2 голосов
/ 26 июня 2010

Это долгая история: я недавно создал приложение win32 в Visual Studio, которое использует DirectX, и я отправил его некоторым друзьям, чтобы убедиться, что оно работает на других машинах. На всех них был установлен .NET, но приложение не работало для всех моих друзей.

В двух случаях при попытке запуска программы возникли ошибки «не удалось загрузить файл или сборку Microsoft.DirectX.DirectInput version 1.0.29 ...».

Я подумал, что у них должны быть другие версии .dll, и после некоторой проверки я обнаружил, что мои ссылки относятся к фиксированным версиям. Я изменил свойство «fixed version» на false для всех dll DirectX, но они все равно получали ошибки при попытке запустить приложение.

Наконец, я попытался скопировать все dll в одну папку с приложением, и ошибки directx исчезли, но вместо этого они получили ошибку «System.IO.FileNotFoundException, что указанный модуль не найден» в строке, где Программа пыталась сделать Direct3D.Texture из изображения (ссылка на изображение была правильной).

Если вы можете помочь мне с советами по устранению любой из перечисленных проблем, я был бы очень признателен!

Ответы [ 3 ]

2 голосов
/ 26 июня 2010

Похоже, вы используете Managed DirectX, и некоторые из ваших друзей, вероятно, не установили его. Насколько я могу судить, распространяемый пакет для MDX больше не доступен. (В любом случае, не от Microsoft, возможно, вы сможете найти его где-нибудь)

Обратите внимание, что Managed DirectX в основном устарел и во многих случаях XNA является лучшим выбором.

1 голос
/ 26 июня 2010

Если вы используете ManagedDirectX, есть быстрый и грязный способ решения этой проблемы. и это просто копирование библиотеки ManagedDirectX в тот же каталог. М.С. говорит, что это не сработает, и определенно не очень подходит для производства. Но это будет работать в большинстве случаев.

DLL, как минимум:

Microsoft.DirectX.Direct3D.dll
Microsoft.DirectX.Direct3DX.dll
Microsoft.DirectX.dll
0 голосов
/ 10 марта 2014

Возможно, ваша проблема уже решена.

У меня тоже была такая же проблема в течение 2 дней, и я наконец-то решил ее.Я испробовал так много решений, которые были предложены в Интернете, но у меня ничего не получалось.Мой проект ссылается на другой проект, который в свою очередь ссылался на Microsoft.DirectX.Direct3DX.dll.Когда я запустил проект, я получил исключение: System.IO.FileNotFoundException: Не удалось загрузить файл или сборку «Microsoft.DirectX.Direct3DX.DLL» или одну из ее зависимостей.Указанный модуль не может быть найден.

Оказывается, этот dll искал «одну из своих зависимостей» и не смог найти их, так как на моем компьютере не был установлен DirectX.Поэтому решение для меня заключалось в установке DirectX.

См. Следующую ссылку для веб-установщика DirectX: http://www.microsoft.com/en-in/download/details.aspx?id=35

Я надеюсь, что это поможет другим, кто сталкивается с той же проблемой!:)

...