[visual-studio] Visual Studio .suo 및 .user 파일을 소스 제어에 추가해야합니까?

Visual Studio 솔루션에는 두 가지 유형의 숨겨진 사용자 파일이 있습니다. 하나는 .suo이진 파일 인 솔루션 파일입니다. 다른 하나는 .user텍스트 파일 인 프로젝트 파일입니다. 이 파일에는 어떤 데이터가 포함되어 있습니까?

또한 이러한 파일을 소스 제어 (내 경우에는 Subversion)에 추가해야하는지 궁금합니다. 이 파일을 추가하지 않고 다른 개발자가 솔루션을 체크 아웃하면 Visual Studio가 자동으로 새 사용자 파일을 작성합니까?



답변

이 파일에는 일반적으로 컴퓨터와 관련된 사용자 기본 설정이 포함되어 있으므로 SCM에 넣지 않는 것이 좋습니다. 또한 VS는 실행할 때마다 거의 변경되므로 항상 SCM에 의해 ‘변경됨’으로 표시됩니다. 나는 2 년 동안 VS를 사용하는 프로젝트에 포함되어 있으며 아무런 문제가 없었습니다. 유일한 작은 성가심은 디버그 매개 변수 (실행 경로, 배포 대상 등)가 해당 파일 중 하나에 저장되어 있다는 것입니다 (어떤 파일을 모르는 지), 표준이있는 경우 ‘ 다른 개발자가 전체 개발 환경을 ‘사용 준비’를 갖도록 SCM을 통해 게시하십시오.


답변

추가 할 필요는 없습니다. 여기에는 사용자 별 설정이 포함되며 다른 개발자는 사본을 원하지 않습니다.


답변

다른 사람들은 왜 소스 제어하에 *.suo*.user파일을 갖는 것이 좋지 않은지 설명했습니다.

다음과 같은 svn:ignore두 가지 이유로이 패턴을 속성에 추가 할 것을 제안합니다 .

  1. 따라서 다른 개발자는 한 개발자의 설정으로 마무리하지 않습니다.
  2. 따라서 상태를 보거나 파일을 커밋 할 때 해당 파일은 코드 기반을 어지럽히 지 않고 추가해야하는 새 파일을 가리지 않습니다.

답변

바이너리 파일 (* .suo)은 커밋하지 않지만 .user 파일은 커밋합니다. .user 파일에는 프로젝트 디버깅을위한 시작 옵션이 포함되어 있습니다. “디버그”탭의 프로젝트 속성에서 시작 옵션을 찾을 수 있습니다. 일부 프로젝트에서 NUnit을 사용하고 프로젝트의 시작 옵션으로 nunit-gui.exe를 구성했습니다. .user 파일이 없으면 각 팀 구성원이 별도로 구성해야합니다.

도움이 되었기를 바랍니다.


답변

2011 년에 Google을 통해이 질문 / 답변을 찾았으므로 잠시 시간을내어 Visual Studio 2010에서 만든 * .SDF 파일에 대한 링크를 버전 제어에 추가해서는 안되는 파일 목록에 추가한다고 생각했습니다 ( IDE에서 다시 생성합니다). * .sdf 파일이 다른 곳에서 합법적으로 사용될 수 있는지 확신 할 수 없으므로 SVN의 특정 [projectname] .sdf 파일 만 무시했습니다.

Visual Studio 변환 마법사 2010이 대규모 SDF 데이터베이스 파일을 만드는 이유는 무엇입니까?


답변

아니요, 말했듯이 사용자별로 다르므로 소스 컨트롤에 추가해서는 안됩니다.

SUO (솔루션 사용자 옵션) : 솔루션을 열 때마다 사용자 정의한 내용이 포함되도록 솔루션과 연결할 수있는 모든 옵션을 기록합니다.

.user 파일은 프로젝트에 대한 사용자 옵션을 포함하고 (SUO는 솔루션을위한 것임) 프로젝트 파일 이름을 확장합니다 (예 : anything.csproj.user는 anything.csproj 프로젝트에 대한 사용자 설정을 포함합니다).


답변

이것은 문제에 대한 Microsoft의 의견 인 것으로 보입니다.

소스 제어에 .suo 파일 추가 및 편집

프로젝트에서 왜 DebuggingWorkingDirectory를 suo 파일에 저장하는지 모르겠습니다. 이것이 사용자 별 설정 인 경우 * .proj.user 파일 이름에 저장하는 것을 고려해야합니다. 프로젝트에서 작업하는 모든 사용자가이 설정을 공유 할 수 있으면 프로젝트 파일 자체에 저장하는 것을 고려해야합니다.

소스 제어에 suo 파일을 추가 할 생각조차하지 마십시오! SUO (Soluton 사용자 옵션) 파일은 사용자 별 설정을 포함하기위한 것으로 동일한 솔루션을 사용하는 사용자간에 공유해서는 안됩니다. scc 데이터베이스에 suo 파일을 추가하려는 경우 IDE의 다른 것들을 깨뜨릴 수는 없지만 소스 제어 관점에서 웹 프로젝트 scc 통합을 중단합니다 .LAN 대 인터넷 플러그인 VSS 액세스를 위해 다른 사용자에 의해 scc가 완전히 중단 될 수 있습니다 (유효한 suo 파일에 저장된 VSS 데이터베이스 경로가 다른 사용자에게는 유효하지 않을 수 있음).

알린 콘스탄틴 (MSFT)