Visual Studio 2008: использовать внешнюю библиотеку DLL отладки для Debug-Run и внешнюю библиотеку DLL для выпуска - PullRequest
3 голосов
/ 26 июля 2010

Короткая версия: Если программа запускается из VS2008 в режиме Release, я хочу использовать ее pathA\externaldll.dll. Если программа запускается из VS2008 в режиме отладки, я хочу использовать ее pathB\externaldll.dll

Длинная версия: У меня есть программа, которая связана с внешними dll-файлами (VTK). Я сам создал внешнее приложение как в режиме отладки, так и в режиме выпуска. Внешние dll-файлы расположены так:

<some path>\Debug\externalDll.dll
<some path>\Release\externalDll.dll

(поэтому они называются одинаковыми, но имеют разные папки).

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

Ссылка на соответствующие библиотеки легка, так как у меня есть настройки проекта для этого. Но при выполнении Visual Studio берет первую dll, найденную в переменной окружения PATH.

Громоздкая идея решения: Наличие переменной PATH, например: PATH =;% CURRENTDLLPATH%; и установка CURRENTDLLPATH в шаг после сборки. В VS2008 нет встроенного решения?

Ответы [ 4 ]

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

На самом деле есть встроенный и простой способ:

«Среда» - переменная в «настройках проекта» /Debugging.

Таким образом, для переменной среды устанавливается значение

PATH=C:\Paraview\ParaView-3.8.0\gen\bin\$(ConfigurationName);%PATH%

для проекта, который будет выполнен, делает свое дело.

Здесь несколько раз отвечали на вопрос, я просто не нашел его (например, Как установить путь в Visual Studio? )

0 голосов
/ 26 июля 2010

Вы можете добавить шаг сборки, чтобы скопировать правильную DLL в папку в PATH, и сделать разные шаги сборки в режиме отладки и выпуска.

0 голосов
/ 26 июля 2010

Ваши выходные файлы отладочной сборки должны идти в папку ./debug, а выходные файлы выпуска должны идти в папку ./release.

Вы должны скопировать соответствующий внешний файл DLL в эту выходную папку: Использоватьшаг перед сборкой и используйте макрос VS $(ConfigurationName) для ссылки на отладку / выпуск.

0 голосов
/ 26 июля 2010

Почему вы не даете разные имена файлов внешним DLL в Debug и в Release, и не добавляете оба каталога в PATH?

...