it-swarm-ko.tech

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

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

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

808
Ben Mills

이 파일에는 일반적으로 사용자의 환경 설정이 포함되어 있으므로 SCM에 넣지 않는 것이 좋습니다. 또한 VS는 거의 매번 실행될 때마다 변경되므로 항상 SCM에 '변경됨'으로 표시됩니다. 나는 둘 중 하나도 포함하지 않고, 나는 2 년 동안 VS를 사용하고있는 프로젝트에있어 아무런 문제가 없었다. 디버그 매개 변수 (실행 경로, 배포 대상 등)는 해당 파일 중 하나에 저장되어 있으므로 (모르는 경우) 표준을 가지고 있으면 디버그 매개 변수가 ' 다른 개발자가 '사용할 준비가 된'전체 개발 환경을 가질 수 있도록 SCM을 통해 게시하십시오.

648
Fabio Ceconello

추가 할 필요가 없습니다 - 사용자 별 설정이 포함되어 있으며 다른 개발자는 복사본을 원하지 않습니다.

136
Steve Cooper

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

두 가지 이유로 svn:ignore 속성에 이러한 패턴을 추가하는 것이 좋습니다.

  1. 따라서 다른 개발자는 한 개발자의 설정을 따르지 않습니다.
  2. 따라서 상태를 보거나 파일을 커밋 할 때 해당 파일은 코드 기반을 혼란스럽게하지 않고 추가해야하는 새 파일을 모호하게하지 않습니다.
68
JXG

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

희망이 도움이됩니다.

49
Thomas

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

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

26
Stephen

아니요, 말했듯이 소스 제어에 추가해서는 안됩니다. 사용자 별입니다.

SUO (솔루션 사용자 옵션) : 솔루션과 연결할 수있는 모든 옵션을 기록하여 열 때마다 사용자 지정 사항을 포함합니다.

.user 파일에는 SUO가 솔루션을위한 동안 프로젝트의 사용자 옵션이 포함되며 프로젝트 파일 이름이 확장됩니다 (예 : anything.csproj.user에는 anything.csproj 프로젝트의 사용자 설정이 포함됨).

23
JRoppert

기본적으로 Microsoft의 Visual SourceSafe는 사용자 별 설정 파일이기 때문에 이러한 파일을 소스 제어에 포함하지 않습니다. 내가 소스 제어로 SVN을 사용하는 경우 그 모델을 따를 것입니다.

19
cori

이것은 문제에 대한 마이크로 소프트의 견해 인 듯하다.

.suo 파일을 소스 컨트롤에 추가 (및 편집)

나는 왜 당신의 프로젝트가 DebuggingWorkingDirectory를 suo 파일에 저장하는지 모른다. 이것이 사용자 별 설정이라면 * .proj.user 파일에 저장하는 것을 고려해야합니다. 이 설정을 프로젝트에서 작업하는 모든 사용자가 공유 할 수 있으면 프로젝트 파일 자체에 저장하는 것이 좋습니다.

suo 파일을 소스 제어에 추가하지 마라! SUO (soluton 사용자 옵션) 파일은 사용자 별 설정을 포함하기 때문에 사용자간에 공유하면 안됩니다. 동일한 솔루션에서 작업합니다. scc 데이터베이스에 suo 파일을 추가하는 경우 IDE에있는 다른 내용을 알 수 없지만 소스 제어 지점에서 웹 프로젝트 통합을 중단하게됩니다. 다른 사용자가 VSS 액세스를 위해 사용하는 LAN 대 인터넷 플러그인을 사용하면 scc가 완전히 손상 될 수도 있습니다 (suo 파일에 저장된 VSS 데이터베이스 경로는 다른 사용자에게 유효하지 않을 수 있습니다).

Alin Constantin (MSFT)

18
Scott W

Visual Studio에서 자동으로 만듭니다. 소스 제어에 넣는 것을 권장하지 않습니다. 지역 개발자의 SOU 파일로 인해 개발자 상자에서 VS가 비정상적으로 작동하는 경우가 여러 번있었습니다. 파일을 삭제 한 다음 VS에서 다시 작성하도록하면 문제가 해결됩니다.

12
Bloodhound

MSDN 웹 사이트 에는 명확하게

솔루션 사용자 옵션 (.suo) 파일에는 사용자 별 솔루션 옵션이 포함되어 있습니다. 이 파일은 소스 코드 컨트롤 에 체크인하면 안됩니다.

그래서 나는 당신의 소스 컨트롤에 물건을 체크인하는 동안이 파일들을 무시하는 것이 꽤 안전하다고 말하고 싶습니다.

11
Farax

나는하지 않을 것이다. "사용자"당 변경할 수있는 것은 소스 제어에서 일반적으로 좋지 않습니다. .suo, .user, obj/bin 디렉토리

9
ScaleOvenStove

이러한 파일은 사용자 별 옵션으로 솔루션 자체와 독립적이어야합니다. Visual Studio는 필요에 따라 새 템플릿을 생성하므로 소스 컨트롤에 체크인 할 필요가 없습니다. 사실, 개별 개발자가 자신의 환경을 자신이 원하는대로 사용자 정의 할 수 있도록 허용하지 않는 것이 좋습니다.

8
benefactual

.user 파일은 사용자별로 고유하므로 소스 제어가 불가능합니다. 여기에는 원격 시스템의 이름과 기타 사용자 종속적 인 것들이 포함됩니다. 이것은 vcproj 관련 파일입니다.

.suo 파일은 sln 관련 파일이며 "솔루션 사용자 옵션"(시작 프로젝트, 창 위치 (도킹 된 위치 및 위치, 부유하는 부분 등)을 포함합니다.

그것은 바이너리 파일이고, 뭔가 "사용자 관련"이 포함되어 있는지 나는 모른다.

우리 회사에서는 소스 제어하에 파일을 가져 가지 않습니다.

7
ugasoft

여기에는 일반적으로 단일 개발자에게 할당되는 프로젝트에 대한 특정 설정이 포함됩니다 (예 : 시작 프로젝트 및 응용 프로그램을 디버깅 할 때 시작되는 시작 페이지).

따라서 버전 관리에 추가하지 않고 VS를 다시 생성하여 각 개발자가 원하는 특정 설정을 가질 수 있도록하는 것이 좋습니다.

7
massimogentilini

.user는 사용자 설정이며, 나는 .suo가 솔루션 사용자 옵션이라고 생각합니다. 이 파일들을 소스 제어하에 놓기를 원치 않는다. 그들은 각 사용자를 위해 다시 만들어 질 것입니다.

5
Nick

Rational ClearCase 를 사용하면 대답은 no입니다. .sln 및. * proj 만 소스 코드 제어에 등록해야합니다.

다른 공급 업체에 대해서는 대답 할 수 없습니다. 올바르게 기억한다면이 파일은 "사용자"특정 옵션, 환경입니다.

4
titanae

이러한 파일을 버전 제어에 추가하지 마십시오. 이 파일은 워크 스테이션 특정 정보로 자동 생성되며 버전 제어에 체크인하면 자동으로 생성됩니다. 다른 워크 스테이션에서 문제를 일으킬 수 있습니다.

2
Amila

아니요, 개발자/컴퓨터 별 로컬 설정이므로 소스 제어를해서는 안됩니다.

GitHub는 Visual Studio 사용자가 제안하는 파일 형식 목록을 무시하고 https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

Svn 들어, 다음 global-ignore 속성 ​​집합이 있습니다.

* .DotSettings.User
*. onetoc2
*. suo
.vs
PrecompiledWeb
thumbs.db
obj
큰 상자
디버그
*.사용자
* .vshost. *
*. tss
* .dbml.layout

1
Stephen Kennedy

다른 답변에서 설명한 것처럼 .suo.user는 모두 소스 제어에 추가하면 안됩니다. 사용자/시스템마다 다르므로 (VSW .suo 최신 VS 버전은 전용 임시 디렉토리 .vs로 옮겨 졌으므로 소스에서 제외해야합니다 제어 완전히).

그러나 응용 프로그램이 VS에서 디버깅을위한 환경 설정이 필요한 경우 (이러한 설정은 일반적으로 .user 파일에 보관됩니다) 샘플을 준비하는 것이 편리 할 수 ​​있습니다 파일 (.user.SAMPLE과 같은 이름)을 만들고 소스 컨트롤에 참조를 추가하십시오.

그러한 파일에 하드 코딩 된 절대 경로 대신에 상대적 파일을 사용하거나 환경 변수에 의존하는 것이 좋습니다. 따라서 샘플은 다른 사람들이 쉽게 재사용 할 수있을만큼 충분히 포괄적 일 수 있습니다.

1
AntonK

실행 파일 종속성을 ProjectProperties> Debugging> Environment 로 설정하면 경로는 '.user'파일에 저장됩니다.

위에서 언급 한 필드에이 문자열을 설정한다고 가정 해 봅시다. "PATH = C :\xyz\bin" 이렇게하면 '.user'에 저장됩니다 '파일 :

<LocalDebuggerEnvironment>PATH=C:\xyz\bin$(LocalDebuggerEnvironment)</LocalDebuggerEnvironment>

이것은 OpenCV에서 일하는 동안 우리에게 많은 도움이되었습니다. 우리는 다른 프로젝트에 대해 서로 다른 버전의 OpenCV를 사용할 수 있습니다. 또 다른 이점은 새 시스템에서 프로젝트를 설정하는 것이 매우 쉽다는 점입니다. 우리는 단지 상응하는 종속 디렉토리를 복사해야했습니다. 그래서 일부 프로젝트에서는 소스 컨트롤에 '.user'를 추가하는 것을 선호합니다.

그럼에도 불구하고, 그것은 전적으로 프로젝트에 의존합니다. 필요에 따라 전화를 걸 수 있습니다.

1
adheen

아니.

나는 단지 짧은 대답을 원했고 아무것도 없었습니다.