2012-03-30 4 views
0

Я не очень опытный разработчик Windows, поэтому надеюсь, что все это имеет смысл.System.IO.FileNotFoundException при попытке загрузить DLL

Я создал управляемую сборку DLL с использованием Visual Studio 2010. DLL (Plip.dll) содержит класс C++, который использует класс System.IO.SerialPort, чтобы выполнить некоторую простую связь через последовательный порт.

Во втором проекте Visual Studio я создал простой графический интерфейс, который использует класс, найденный в Plip.dll. В моем проекте GUI у меня есть строка: #using «Plip.dll». В свойствах проекта я устанавливаю значение «Resolve #using References» в правильное расположение Plip.dll. Графический интерфейс построен просто отлично. Если я скопирую файлы GUI.exe и Plip.dll в одну и ту же папку, графический интерфейс будет работать на моем компьютере.

Проблема, с которой я столкнулась, заключается в том, что при копировании обоих файлов на второй компьютер я не могу запустить исполняемый файл GUI. Я получаю следующую ошибку: «System.IO.FileNotFoundException. Не удалось загрузить файл или сборку« Plip.dll »Vesion = ....». Я получаю эту ошибку, даже если exe и dll находятся в одной папке.

Любые предложения по решению этой проблемы? Есть ли какой-то параметр, который мне нужно установить в моем проекте GUI, чтобы загрузить DLL правильно во время выполнения?

ответ

3

Я полагаю, что проблема не в Plip.dll, а в зависимостях.

На втором компьютере используйте Dependency Walker, чтобы узнать, нужны ли какие-либо другие dll (они могут быть установлены в системной папке или в% PATH% на вашем компьютере разработки, но не на другом).

Если второй компьютер не установлена ​​Visual Studio, вы, вероятно, не хватаете Microsoft Visual C++ 2010 Redistributable Package (вы должны установить его на другом компьютере)

Кроме того, убедитесь, что вы собираете в Release, поскольку отладки сборки необходимы зависимости отладки ,

+0

У вас все в порядке. Уязвимость Dependency Walker показала, что мне не хватает Распространяемого MS C++ 2010. Спасибо за помощь. –

Смежные вопросы