Развертывание проектов Visual Studio - PullRequest
2 голосов
/ 11 апреля 2019

Мой вопрос прост: как мне развернуть или опубликовать мой проект Visual Studio, связанный именно с внешней библиотекой, библиотекой OpenCV. И что это может быть запущено на других компьютерах

1 Ответ

1 голос
/ 11 апреля 2019

DLL с очень осторожны в обращении. Как вы упомянули в своем комментарии, вы должны разместить его рядом с исполняемым файлом.

Windows ищет в нескольких местах ваши DLL s. В системных папках и т. Д. И в папке, где находится ваш исполняемый файл. Для переносимости в другие системы и во избежание того, что Windows использует неправильный DLL, вы должны поместить его рядом с исполняемым файлом.

This LINK заявляет:

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

...

Если SafeDllSearchMode включен, порядок поиска следующий:

  1. Каталог, из которого загружено приложение. 2. Системный каталог. Используйте функцию GetSystemDirectory, чтобы получить путь к этому каталогу.
  2. 16-битный системный каталог. Не существует функции, которая получает путь к этому каталогу, но она ищется.
  3. Каталог Windows. Используйте функцию GetWindowsDirectory, чтобы получить путь к этому каталогу.
  4. Текущий каталог.
  5. Каталоги, перечисленные в переменной среды PATH. Обратите внимание, что сюда не входит путь для каждого приложения, указанный в разделе реестра «Пути к приложениям». Ключ App Paths не используется при вычислении пути поиска DLL.

Если SafeDllSearchMode отключен, порядок поиска следующий:

  1. Каталог, из которого загружено приложение.
  2. Текущий каталог.
  3. Системный каталог. Используйте функцию GetSystemDirectory, чтобы получить путь к этому каталогу.
  4. 16-битный системный каталог. Не существует функции, которая получает путь к этому каталогу, но она ищется. Каталог Windows. Используйте функцию GetWindowsDirectory, чтобы получить путь к этому каталогу.
  5. Каталоги, перечисленные в переменной среды PATH. Обратите внимание, что сюда не входит путь для каждого приложения, указанный в разделе реестра «Пути к приложениям». Ключ App Paths не используется при вычислении пути поиска DLL.

Если это возможно, вы должны определить ваш DLL с абсолютным путем. Просто для полноты. Также по ссылке:

Система может содержать несколько версий одной и той же динамически подключаемой библиотеки (DLL). Приложения могут контролировать местоположение, из которого загружается DLL, указав полный путь или используя другой механизм, такой как манифест.

Как уже упоминалось в комментариях, вы должны также включить время выполнения MVS DLL с.

...