Почему существуют файлы .sln, .suo и .csproj? - PullRequest
57 голосов
/ 06 октября 2010

Я начал использовать Visual Studio 2010. После завершения работы с программой на C # я вижу, что в корневом каталоге проекта есть файлы .sln и .suo, а в подкаталоге - файл .csproj.,Для чего эти файлы?

Мне нужно определить файлы, которые нужно поместить в репозиторий Git.Я полагаю, что вместе с исходным кодом / документами, которые я создаю, эти три файла - единственный, о котором я должен позаботиться.Однако я не уверен, что отслеживаю правильные файлы.

ДОБАВЛЕНО

Как насчет личных макрофайлов?У меня есть макрос Emacs с ключом , есть ли в файле .sln или .csproj этот макрос?

Ответы [ 4 ]

69 голосов
/ 06 октября 2010

Вы должны зафиксировать .sln и .csproj, но не файлы .suo или .user.

Вы можете добавить следующее к .gitignore:

#ignore thumbnails created by windows
Thumbs.db
#Ignore files build by Visual Studio
*.obj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
[Bb]in
[Dd]ebug*/
*.lib
*.sbr
obj/
[Rr]elease*/
_ReSharper*/
[Tt]est[Rr]esult*
42 голосов
/ 06 октября 2010

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

CSProj (файл проекта) - это реальные проекты кода (библиотеки C #, службы WCF и т. Д.).Хранит информацию на уровне проекта.Он включает в себя все релевантные ссылки, классы и т. Д.

SUO (пользовательские параметры решения) - это файлы пользовательских настроек.Абсолютно одноразовые, вы можете удалить их, и самая распространенная вещь, которую вы потеряете - это точки останова.


Нажмите все, кроме файлов настроек SUO.

Не включайте никаких bin, debug, objкаталог.Единственные библиотеки DLL (или скомпилированные / сгенерированные объекты), которые вы должны включить, являются внешними по отношению к вашему приложению.

14 голосов
/ 06 октября 2010

Из MSDN:

Решение (.sln) - это структура для организации проектов в Visual Studio.Он выполняет функцию, аналогичную файлам программной группы Windows (.vbg) в Visual Basic 6.0 и файлам рабочей области проекта (.dsw) в Visual C ++ 6.0.Решение поддерживает информацию о состоянии проектов в файлах .sln (текстовые, общие) и .suo (двоичные, пользовательские параметры решения)… [Источник]

Кроме того, также из MSDN:

Файл пользовательских параметров решения (.suo) представляет собой структурированное хранилище или составной файл, хранящийся в двоичном формате.Вы сохраняете информацию о пользователях в потоках, причем имя потока является ключом, который будет использоваться для идентификации информации в файле .suo… [Источник]

Вы не делаетеНужно положить .suo файл в VCS.Это пользовательский файл.

3 голосов
/ 13 августа 2013

У файлов SUO есть цель, и я не согласен с утверждением, что их всегда следует игнорировать.Я не игнорирую их, и в качестве общей практики я добавляю их в наш SVN-репозиторий.Мои проекты не всегда используют решения по умолчанию для Startup Project или платформы.Я нахожу это раздражающим, что, если я беру новый проект, он не по умолчанию для 64-битной и соответствующей платформы.SUO содержит настройки для правильной установки этих значений по умолчанию.

Недостатком является то, что это двоичный файл, поэтому почти каждый раз, когда вы открываете решение и делаете что-либо, файл будет изменен.Обычно размер файла составляет менее 100 КБ, и если вы не знаете, что что-то изменили, я не фиксирую изменение.

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