Некоторое время я использовал Visual Studio 2010 Express и довольно долго играл с некоторыми обширными проектами. Поскольку у меня около 50-60 файлов и тысячи строк кода, я решил сделать некоторый контроль над исходным кодом для всего, чтобы проект был легче обновлен и доступен для всех моих устройств, а также для резервного копирования.
Я использовал git раньше и мне это удобно, но теперь, когда я сделал коммит и отправил его в удаленный репозиторий на bitbucket.org, я обнаружил, что файлы .vcxproj, сохраняя правильную структуру файлов, также сохранили включение и каталоги lib для устройства, с которого оно было выдвинуто, что означает, что при извлечении на другой компьютер эти каталоги include / lib будут искать неправильные каталоги, что означает, что мне придется пересматривать все из них каждый раз, когда я извлекаю / нажимаю.
Мой вопрос, могу ли я в любом случае отправить файлы в хранилище таким образом, чтобы решение сохраняло настройки папки, а не параметры каталога include и lib?
Редактировать:
После некоторых исследований я изучил эти так называемые таблицы свойств в Visual Studio, которые представляют собой файлы, которые можно добавить в ваш проект. Установленные вами настройки имеют приоритет над настройками проекта, но есть и загвоздка, если вы добавите отдельный файл свойств в проект, а затем добавите файл .sln и различные файлы .vcxproj без этого .props файл, а затем кто-то еще клонирует из хранилища, он не откроется, потому что, очевидно, требует этот файл реквизита.
В этом отношении мне хотелось бы получить файл .props по умолчанию в удаленном репозитории, который после клонирования больше не отслеживается, и тогда этот пользователь может просто отредактировать его для себя. Я не знаю достаточно о мерзавцах, чтобы это произошло. У кого-нибудь есть идея?
Я не уверен, что именно ваша проблема, но вот мое понимание:
Файлы вашего проекта содержат абсолютные пути (например, «C: \ myproj \ include»). Замените их относительными путями (например, «. \ Include»). Помогает переменная «$ (SolutionDir)»: если файл вашего решения — C: \ myproj \ myproj.sln, то «$ (SolutionDir) include» совпадает с «C: \ myproj \ include». Вы можете изменить каталоги include и библиотеки в Свойства проекта> Свойства конфигурации> C / C ++ и Linker соответственно.
Для вашего проекта требуются сторонние библиотеки — например, boost — и они находятся за пределами вашего проекта, например, C: \ boost. К сожалению, в Windows / VS нет стандартного расположения сторонних библиотек, поэтому вы можете:
Позвольте мне знать, если это помогает.
То, что вы ищете, это грязное пятно и чистые фильтры. Вам придется написать скрипт для очистки, но sed, вероятно, отлично справится с этой задачей, вам не понадобится настоящий xml-разбор.