Подтвердить что ты не робот

Почему существуют файлы .sln,.suo и .csproj?

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

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

ADDED

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

4b9b3361

Ответ 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 тыс., И если вы не знаете, что что-то изменили, я не совершаю изменения.