Где разместить внешнюю DLL в C #? - PullRequest
0 голосов
/ 20 февраля 2012

Если я ссылаюсь на внешнюю неуправляемую DLL в C # следующим образом:

[DLLImport("MyDLL.dll",  ...

Где должна быть расположена DLL, когда я хочу запустить код из моей IDE?Должно ли оно быть в папке bin\Debug?

Ответы [ 3 ]

1 голос
/ 20 февраля 2012

В любом месте, доступное для функции LoadLibrary.См. Порядок поиска в Dynamic-Link Library для получения дополнительной информации:

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

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

bin\Debug удовлетворяет первой точке, предполагая, что вы когда-либо запускаете приложение только в его Debug конфигурации.

1 голос
/ 20 февраля 2012

Какую конфигурацию компиляции вы используете?

Если вы хотите запустить приложение из Visual Studio Debug / Run, оно будет в папке вашего проекта

Если вы хотите запустить двойной щелчок, он должен быть рядом с вашим exe, который находится в

bin \ Debug

или

bin \ Release

папка.

0 голосов
/ 20 февраля 2012

Да, наряду с файлом .exe, созданным компилятором (который, как вы сказали, заканчивается в bin\Debug\), он должен быть идеальным.

...