Я думаю, из других ответов ясно, что файлы решений полезны и должны быть зафиксированы, даже если они не используются для официальных сборок. Они удобны для тех, кто использует функции Visual Studio, такие как «Перейти к определению / объявлению».
По умолчанию они не содержат абсолютных путей или каких-либо других машинно-специфичных артефактов. (К сожалению, некоторые надстройки не поддерживают это свойство должным образом, например, AMD CodeAnalyst.) Если вы будете осторожны при использовании относительных путей в файлах проекта (как C ++, так и C #), они будут независимы от машины. тоже.
Вероятно, более полезный вопрос: какие файлы вы должны исключить? Вот содержимое моего файла .gitignore для моих проектов VS 2008:
*.suo
*.user
*.ncb
Debug/
Release/
CodeAnalyst/
(Последняя запись предназначена только для профилировщика AMD CodeAnalyst.)
Для VS 2010 также следует исключить следующее:
ipch/
*.sdf
*.opensdf