Почему существуют файлы .sln,.suo и .csproj?
Я начал использовать Visual Studio 2010. После того, как я закончил программу С#, я вижу, что в корневом каталоге проекта есть файлы .sln
и .suo
, а файл .csproj
- в подкаталоге, Для чего нужны эти файлы?
Мне нужно идентифицировать файлы для размещения в репозитории Git. Вместе с исходным кодом/документами, которые я создаю, я думаю, что эти три файла являются единственными, о которых я должен заботиться. Однако я не уверен, что я отслеживаю правильные файлы.
ADDED
Как насчет личных файлов макросов? У меня есть макрос ключа Emacs key, есть ли этот файл .sln
или .csproj
?
Ответы
Ответ 1
Вы должны зафиксировать файлы .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*
Ответ 2
SLN (Solution) - файлы решений. В нем хранится информация о коллекции проектов, которые составляют все, что вы разрабатываете. Они содержат проекты, настройки источника управления или любые другие вещи на глобальном уровне.
CSProj (файл проекта) - это фактические проекты кода (библиотеки С#, службы WCF и т.д.). Он хранит информацию на уровне проекта. Он включает все соответствующие ссылки, Classess и т.д.
SUO (параметры пользователя решения) - это файлы пользовательских настроек. Полностью одноразовые, вы можете удалить его, и наиболее распространенная вещь, которую вы потеряете, - это точки останова.
Нажмите все, кроме файлов настроек SUO.
Не включайте каталог bin, debug, obj. Единственными DLL (или скомпилированными/сгенерированными объектами), которые вы должны включить, являются те, которые являются внешними по отношению к вашему приложению.
Ответ 3
Из MSDN:
A solution (.sln) - это структура для организации проектов в Visual Studio. Он выполняет функцию, аналогичную файлам Windows Program Group (.vbg) в файлах Visual Basic 6.0 и файлах рабочей области проекта (.dsw) в Visual С++ 6.0. Решение поддерживает информацию о состоянии для проектов в файлах .sln(текстовые, общие) и .suo(двоичные, пользовательские варианты решения)... [Source]
Кроме того, также из MSDN:
файл решения (.suo) - это структурированное хранилище или составной файл, хранящийся в двоичном формате. Вы сохраняете информацию пользователя в потоках с именем потока, являющимся ключом, который будет использоваться для идентификации информации в файле .suo... [Source]
Вам не нужно вставлять .suo
файл в VCS. Это пользовательский файл.
Ответ 4
У файлов SUO есть цель, и я не согласен с утверждением, что их всегда следует игнорировать. Я не игнорирую их, и в качестве общей практики я добавляю их в наш SVN-репозиторий. Мои проекты не всегда используют значения по умолчанию для Startup Project или платформы. Я нахожу, что это раздражает, что если я возьму новый проект, он не будет по умолчанию 64 бит и правильной платформой. SUO содержит настройки, чтобы правильно установить эти значения по умолчанию.
Нижняя сторона этого заключается в том, что это двоичный файл, поэтому почти каждый раз, когда вы открываете решение и делаете что-либо, файл будет изменен. Обычно файл меньше 100 тыс., И если вы не знаете, что что-то изменили, я не совершаю изменения.