Конфигурации из внешних проектов в Visual Studio 2012

У меня проблема с Visual Studio 2012, и я надеюсь, что есть решение для этого. В моем решении есть 2 проекта: один проект - это ".exe", а другой - ".lib". Я добавил проект lib в качестве ссылки в exe-проект, и я гарантировал, что он должен быть скомпилирован первым. Проект lib имеет кучу дополнительных каталогов include и кучу дополнительных зависимостей и связанных библиотек. Проект lib компилируется нормально. Однако ни одно из дополнительных каталогов включения или дополнительных каталогов библиотеки или зависимостей не наследуется приложением exe. Я смог решить эту проблему, скопировав конфигурации в проект exe, но это означает, что если я когда-либо обновлю зависимости lib, то мне нужно будет обновить его в каждом проекте, который использует эту библиотеку (я играю, чтобы использовать эту библиотеку для нескольких проектов). Это похоже на то, для чего должно быть решение, но я просто не могу его найти. Кто-нибудь придумал, как проекты наследуют конфигурации ссылочных проектов, или нет пути к этому? Благодарю.

1 ответ

Решение

Вы правы, проекты не наследуют свойства других проектов, на которые они ссылаются. Чтобы решить вашу проблему, вам нужен лист недвижимости. Лист свойств - это набор свойств (как вы установили в свойствах проекта), отдельный от проекта. Вы можете применить один лист свойств ко многим проектам.

В вашем случае "дополнительные библиотечные зависимости" и "дополнительные каталоги включения" будут помещены в лист свойств. Этот список свойств будет применяться как к вашему .exe проект и ваш .lib проект. Когда вы вносите изменения, вы вносите их в список свойств, и оба проекта видят изменения.

Давайте пошагово проведем настройку листа свойств, чтобы делать то, что вы хотите.

  1. Загрузите файл решения с вашим .exe а также .lib проекты. Давайте предположим, что имя вашей библиотеки PowerMath.lib и ваш главный исполняемый файл SuperCalc.exe,
  2. Найдите окно обозревателя решений в Visual Studio. Это подокно, в котором перечислены все ваши проекты и файлы внутри этих проектов. (Если у вас его нет, откройте меню "Вид" и выберите "Обозреватель решений", чтобы создать его.)
  3. Во-первых, давайте возьмем настройки из свойств проекта, где они уже установлены. Перейти к свойствам проекта для PowerMath.lib проект (щелкните правой кнопкой мыши этот проект в обозревателе решений и выберите "Свойства" в контекстном меню). Найдите свои настройки "дополнительных зависимостей библиотеки" и "дополнительные каталоги включения" и удалите их. (Удалите только свои изменения, а не то, что было раньше.) (Кроме того, запишите свои вещи или скопируйте их куда-нибудь - это вернется на шаге 10.) Когда вы закончите с PowerMath.lib проект, повторите процесс с SuperCalc.exe проект. Разорви все это, чтобы оно не мешало новому подходу, который мы собираемся использовать. Убедитесь, что вы сделали это для всех конфигураций ваших проектов (Debug and Release, Win32 и x64).
  4. Внизу окна Solution Explorer вы увидите несколько вкладок, в том числе: Solution Explorer, Class View и Property Manager. Они могут быть сокращены, если окно маленькое. Нажмите на Property Manager.
  5. В Property Manager вы увидите две записи: PowerMath а также SuperCalc названия проектов. Щелкните правой кнопкой мыши на PowerMath.lib проект, и выберите пункт меню Добавить новую страницу свойств.
  6. Выберите хорошее имя, которое относится к вашей библиотеке. Я бы предложил PowerMath-settings.props, Затем нажмите кнопку Добавить, чтобы создать лист свойств, и автоматически прикрепите его к PowerMath.lib проект.
  7. Вернувшись на панель диспетчера свойств, вы увидите, что PowerMath имеет два элемента: отладку и выпуск. Это две конфигурации вашей библиотеки. Если вы "откроете их", щелкнув по ним мышью, вы увидите, что PowerMath-settings лист свойств был прикреплен к обеим конфигурациям.
  8. PowerMath-settings список свойств указан выше, а также множество других листов свойств, которые уже присутствовали, с именами, такими как Core Windows Libraries а также Unicode Support, Все настройки в любой конфигурации ваших проектов основаны на объединении этих списков свойств! Вот как работают свойства в Visual Studio - собирая все листы свойств проекта в порядке с первым внизу.
  9. Дважды щелкните на PowerMath-settings список свойств в списке. Это приведет вас к знакомому интерфейсу свойств проекта. Внесенные здесь изменения не относятся к проекту или конкретной конфигурации внутри этого проекта. Вместо этого вы пишете настройки только для листа свойств PowerMath-settings.props,
  10. Теперь вы можете написать свои дополнительные библиотечные зависимости и дополнительные каталоги include. Перейдите в диалоговые окна, где вы ожидаете установить эти вещи. В соответствующих полях нажмите маленькую стрелку вниз с правой стороны поля и выберите Edit...,
  11. В окне редактирования вы увидите пустое место, где вы можете написать свои новые настройки. (Вы также увидите "унаследованные значения", то есть параметры, полученные из других таблиц свойств.) Добавьте свои данные и нажмите кнопку "ОК".
  12. Когда вы закончите, у вас будет список свойств PowerMath-settings.props который хранит настройки, необходимые для всех пользователей PowerMath.lib библиотека.
  13. Теперь вернитесь в окно Property Manager. Щелкните правой кнопкой мыши на SuperCalc вместо проекта (это ваш.exe). Выберите пункт меню Добавить существующий список свойств. найти PowerMath-settings.props и выберите его.
  14. Бум, сейчас SuperCalc.exe получает все настройки, которые вы только что создали PowerMath.lib,
  15. Чтобы убедиться в этом, переключитесь обратно из Property Manager в Solution Explorer (щелкнув вкладку Solution Explorer в нижней части подокна). Перейти к свойствам проекта для вашего SuperCalc.exe проект. Перейдите в раздел "Дополнительные каталоги включения". Нажмите на стрелку вниз в левой части этого поля и выберите Edit..., Вы увидите, что настройки вашего окна свойств перечислены как "унаследованные значения".
  16. Иногда параметры совершенно новой страницы свойств не применяются до тех пор, пока вы не закроете Visual Studio, не перезапустите и повторно не загрузите решение. Не забудьте нажать YES, когда появится вопрос, хотите ли вы сохранить изменения проекта и новые таблицы свойств! После того, как все настроено, вам не нужно делать это снова.

Теперь в любое время у вас есть новый проект, который использует PowerMath.lib просто зайдите в Property Manager и добавьте существующий лист недвижимости: PowerMath-settings.props,

Помните, что все изменения, внесенные в свойства в окне свойств, должны быть сделаны через диалоговые окна диспетчера свойств, не используя PowerMath.lib Свойства проекта! Свойства проекта - это своего рода лист свойств переопределения, который применяется только к одному конкретному проекту. Он стоит над всеми листами свойств, перечисленными управляющим имуществом.

Другие вопросы по тегам