Относительный путь к DLL в операторе вызова платформы - PullRequest
2 голосов
/ 23 января 2009

Я использую VS 2008 для разработки приложения, которое использует .dll с P / Invoke. Я могу успешно использовать DLL, когда я использую абсолютный путь. Например, это работает:

[DllImport ( "C: \\ MyDll.dll")] внутреннее статическое внешнее bool isReady ();

это НЕ работает:

[DllImport ( "MyDLL.dll")] внутреннее статическое внешнее bool isReady ();

Я попытался добавить справочную папку и добавить DLL в папку проекта, но ни одна из них не работает. Мне нужно развернуть это приложение на других компьютерах и убедиться, что этот DLL включен. Спасибо за помощь!


Я забыл упомянуть, когда я пытаюсь сделать это, я получаю эту ошибку:

Microsoft Visual Studio Не удалось добавить ссылку на «C: \ Users \ dlugokja \ Documents \ Visual Studio 2008 \ Projects \ DinamapN.sln (1) \ DinamapN \ DinamapN \ DinaWin.dll». Пожалуйста, убедитесь, что файл доступен, и что это допустимая сборка или COM-компонент. OK

Ответы [ 2 ]

4 голосов
/ 23 января 2009

Решение, которое мы используем на работе, следующее:

  1. Добавить DLL в ваш проект
  2. Измените свойства DLL на «Содержимое» и «Всегда копировать»
  3. Ссылка на DLL в ваших операторах P / Invoke как @ "mydll.dll"
0 голосов
/ 23 января 2009

Почему бы просто не щелкнуть правой кнопкой мыши файл проекта, «Добавить ссылку» и перейти к DLL?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...