6

Вопрос по visual-studio, solution, vcproj – Как иметь разные зависимости проекта для каждой конфигурации проекта?

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

Например, я нене хочу создавать и связывать SomeTestLib.vcproj в конфигурации выпуска, но яЯ хотел бы собрать и дать ссылку на него в Debug.

Одним из решений, которое работает как-то, является использование макросов условной компиляции:

#ifdef DEBUG  
#pragma comment( lib, "SomeTestLib" )  
#endif

Но в этом случае отладчик и IntelliSense нене работает для SomeTestLib.

Есть ли способ взлома .sln или .vcproj, который я мог бы использовать?

Благодарю.

6ответов

1

Установите тип конфигурации Utility вместо приложения / библиотеки в свойствах проекта -> Генеральный..

0

В основном проекте, перейдите в Свойства конфигурации -> Линкер -> Ввод, в разделе под названием "Игнорировать конкретную библиотеку " добавьте библиотеку, которую вы хотите добавить, например: .lib. Сделайте это снова для другой конфигурации, за исключением того, что игнорируйте другую библиотеку lib / dll.

Наконец, если вы неЧтобы каждый проект строился для обеих конфигураций, щелкните правой кнопкой мыши Решение -> Зависимости проекта -> [Выберите основной / проект верхнего уровня] -> Снимите флажок с проекта, который вам не нуженНе хочу, чтобы построен / игнорируется.

Преимущество этого метода заключается в том, что вы все равно можете вручную собрать каждый проект, если хотите, но можете переключать конфигурации и собирать / использовать только ту библиотеку lib / dll, которую вы хотите.

7

После поисков в Google в течение нескольких дней я, наконец, разочаровался в поиске решения этой проблемы и взорвал разработчика VS, который дал мне обходной путь для этой проблемы (на самом деле, я пытался найти разные способы самостоятельно, чтобы найти это).

По-видимому, IDE нене достаточно умен, чтобы понять, что тымы отключили сборку для конкретной библиотеки в данной конфигурации и не добавляли этот проект 'Вывод в командную строку компоновщика для проектов, которые зависят от него. Я'Я уверен, что вы знаете об этом.

Однако, поскольку он просто вставляет строку вывода из проекта библиотеки в командную строку зависимого проекта, для строки вывода устанавливается значение " " ничего не будет добавлено в командную строку компоновщика в зависимых проектах!

Надеемся, что эта проблема будет исправлена в Visual Studio в будущем. Я остаюсь оптимистом, потому что это моя любимая среда разработки, и меня всегда впечатляют функции, которые она поддерживает. Тем не менее, некоторые из VS помогают темы, которые явидел, что эта ошибка "по дизайну"так что, может быть, они выигралиэто исправить. Это, кажется, достаточно просто сделать.

В любом случае, подведем итог:

  • Щелкните правой кнопкой мыши по проекту вашей библиотеки в обозревателе решений и нажмите "Свойства».
  • Переключиться на "Конфигурация / Платформа» пара, для которой ваш библиотечный проект не создан.
  • Выбрать "Свойства конфигурации -> Библиотекарь -> Генеральный".
  • За "Выходной файл", тип " " (то есть открытые парены, пробел, закрытые парены).
  • Нажмите ОК.

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

Надеюсь это поможет!

Даниил

0

Щелкните правой кнопкой мыши ваше решение и выберите свойства. Откроется страница свойств решения.

На правой странице выберите Свойства конфигурации >>> конфигурация

Здесь вы можете выбрать конфигурацию сборки для Debug, Release и All type build, установив флажок с надписью Build.

3

Это'Можно отключить свойство зависимостей библиотеки Linker / General / Link в зависимом проекте и поместить библиотеку во входные данные компоновщика в соответствующих конфигурациях.

Это делает ссылки на проекты менее полезными, но работоспособными.

0

В visual studio каждая конфигурация сборки содержит свой список свойств для вашего проекта. Просто добавьте свою библиотеку в ту конфигурацию сборки, которая вам нужна. Просто нет добавить в "Все конфигурации "Я"

RelatedQuestions