При оценке Visual Studio 2010 Beta 2 я обнаружил, что в преобразованном каталоге мои файлы vcproj превратились в файлы vcxproj. Рядом с каждым проектом есть файлы vcxproj.filter, которые содержат описание структуры папок (\ Source Files, \ Header Files и т. Д.).
Как вы думаете, эти файлы фильтров следует хранить для каждого пользователя или они должны использоваться всей группой разработчиков и проверяться в SCC?
В настоящее время я думаю о том, чтобы проверить их, но мне интересно, есть ли какие-либо причины не делать этого или, возможно, веские причины, по которым я обязательно должен их проверить.
Очевидное преимущество состоит в том, что структуры папок будут совпадать, если я смотрю на чужую машину, но, может быть, они захотят логически реорганизовать вещи?
Ответ 1 · рейтинг 62 · jrbjazz
Предыдущие версии Visual Studio (по крайней мере версии 6.0 и 2008) хранят эту информацию в собственном файле проекта (файлы .dsp и .vcproj соответственно), которые, конечно, хорошо добавить в SCC.
Я не могу придумать никаких причин, чтобы не включать эти файлы .filter в SCC.
Ответ 2 · рейтинг 115 · dan moseley
Мы намеренно вытащили .filter. информацию о файле из .vcproj при переводе в формат .vcxproj MSBuild. Одна из причин заключается в том, что вы указали, что фильтры представляют собой чисто логическое представление, и разные члены команды могут захотеть разные представления. Другой заключается в том, что иногда сборка настраивается так, чтобы проверять временную метку файла проекта и запускать перестройку, если она изменилась - потому что это может означать, что есть разные исходные файлы для сборки или разные настройки и т. Д. вспомните, действительно ли мы поставляли сборку с запуском таким образом, но идея заключалась в том, что мы не хотели запускать перестройку просто потому, что фильтры изменились, поскольку они не влияют на сборку.
Ответ 3 · рейтинг 6 · parsley72
Я только что обнаружил, что если вы используете Git, вы можете пометить файлы .filter, которые будут обрабатываться как объединение для слияния, чтобы упростить его. Просто добавьте строку:
*.vcxproj.filters merge=union
в ваш файл .gitattributes.
Дополнительные сведения см. В разделе Использование .gitattributes для предотвращения конфликтов слияния.
Ответ 4 · рейтинг 5 · V. Panchenko
Его не следует добавлять, если вы используете CMake (или аналогичные инструменты сборки) для создания файлов, таких как *.sln, *.vcxproj, *.vcxproj.filters и т. Д., Потому что эти файлы могут содержать полный путь к вашей папке проекта, а другие только определенные папки вашего компьютера .