3

Фон: У меня есть программа, которая ссылается на стороннюю библиотеку. Есть две версии библиотеки, поэтому я создал два решения, которые указывают на один и тот же код. Это может показаться странным, но код не должен отличаться. Только настройки в решении должны быть разными (т. Е. Имена библиотек различаются, а версия CRT отличается).Добавить в Path Visual Studio Release Build

  • РешениеA использует версию сторонней библиотеки (использует CRT-версию 8.0).
  • РешениеB использует версию B сторонней библиотеки (использует CRT версии 9.0).
  • И SolutionA, и SolutionB указывают на тот же код.

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

Чтобы запустить исполняемый файл, я должен сообщить ему, где находятся библиотеки сторонних разработчиков. Чтобы сделать это, я могу перейти к Configuration Properties ->Debugging ->Environment и добавить путь к библиотекам в переменную окружения %PATH%.

Вопрос: Это прекрасно работает, но ограничивается режимом отладки. Как добавить в переменную среды %PATH% в режиме деблокирования? Можно ли это сделать, используя листы свойств проекта?


Примечание: Когда программа развернута, пакетный файл устанавливает среду перед запуском. Тем не менее, я хотел бы иметь возможность запускать исполняемый файл release в Visual Studio, чтобы поддерживать совместимость (для других разработчиков это было бы проще).

Кто-то, вероятно, спросит, почему у меня нет библиотек в папках решений или почему я не бросаю их с исполняемым файлом. Я не решаюсь это сделать, потому что одна версия библиотек занимает около 180 МБ. Мне нужно только две версии прямо сейчас, но это обязательно изменится.

+0

Я не уверен, что понял вашу проблему, но я попытался ответить;) – Korchkidu

ответ

1

Вам не нужно создавать отдельные решения с отдельными свойствами. Для одного решения вы можете создать несколько конфигураций. Каждая конфигурация имеет свои собственные параметры компиляции.

Right Click on your project -> Properties -> Configuration Manager -> New. 

Относительно «Это прекрасно работает, но ограничивается режимом отладки». Да, вы задаете параметры только для режима отладки. Так что это нормально, он работает только в режиме отладки.

Для вас библиотеки, если они являются статическими:

Properties -> Linker -> Input -> Additional Dependencies 

Properties -> Linker -> General -> Additional Library Directories 
+0

Это не отвечает на мой главный вопрос, но спасит мне много головной боли по дороге! Создание новых конфигураций будет намного проще. – Derek

+0

См. Изменения. – Korchkidu

1

, как мы получили вокруг этой проблемы заключается в запуске самой Visual Studio, используя пакетный файл, который устанавливает переменные окружения (например, PATH) до начала Visual Studio, которая наследует среду. Это позволяет временным параметрам среды выполнять VS и унаследовать все конфигурации сборки.

Это работает для отладки, выпуска и любых пользовательских конфигураций сборки, которые могут быть у вас.

+0

Уход. И вы говорите о запуске интерфейса Visual Studio GUI или командной строки? Или это имеет значение? – Derek

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