"시작으로 설정"옵션이 sln 파일이 아닌 suo 파일에 저장되는 이유는 무엇입니까?


175

이 설정은 솔루션 파일에 저장되어 모든 사용자와 소스 코드 제어의 일부에서 공유되어야합니다. 우리는 suo 파일을 체크인하지 않기 때문에 각 사용자는 이것을 이상한 것으로 설정해야합니다.

답변:


46

왜 사용자가 아닌 환경 설정이되어야합니까?

10 개의 파일이있는 솔루션을 가지고 있는데 한 명의 개발자가 주로 해당 도구 중 하나를 테스트 / 사용하는 경우 왜 시작에 영향을 미칩니 까?

나는 MS가 이것에 대한 올바른 선택을했다고 생각합니다. 이 프로젝트 내가 시작하려는은 반드시 프로젝트에서 멀리 다른 개발자가 시작하고 싶어.


133
종종 디버깅을 위해 대부분의 사람들이 원하는 시작 프로젝트 일 가능성이 높은 프로젝트가 있으며 (예 : 웹 사이트) 클래스 라이브러리를 시작 프로젝트로 원하지 않습니다. MS가 왜 전역 기본 시작 프로젝트를 설정하고. 원한다면 그것을 무시하기 위해 suo.
Jez

27
말하기 방법이 있습니다 ... 기본 시작 프로젝트로 설정하려는 프로젝트를 sln 파일의 첫 번째 프로젝트로 이동하십시오. suo 파일을 삭제하고 솔루션을 다시 열고 woila를 시작하십시오. 첫 번째 프로젝트는 시작입니다. 이것에 영향을 미치는 다른 요소가있을 수 있지만 소스 제어에서 깨끗한 프로젝트를 체크 아웃했을 때 특히 하나의 프로젝트가 기본값을 유지한다는 것을 알았을 때 발견했습니다.
misteraidan

2
올바른 시작 프로젝트를 설정하기 위해 suo를 버전 제어로 확인해야하고 버전 제어를 suo로 확인하는 것이 좋지 않기 때문에 빌드 서버를 사용할 때 문제가됩니다.
markshancock

2
@markshancock : 왜 빌드 서버가 시작 프로젝트를 신경 쓰겠습니까? 나는 그것을 문제로 본 적이 없다.
Jon Skeet

18
미안하지만 존, 여기에 -1을 줄게 필자는 개발자가 코드를 다운로드 한 다음 F5를 누르면 가장 일반적인 개발 설정이 빌드 및 시작될 것으로 예상하는 능력이 있어야한다고 믿는 사람입니다. 물론 개인 상황에 맞게 스타트 업을 조정할 수 있어야하지만 위에서 언급 한대로 대부분의 사용자에 대해 기본값을 설정할 수 있습니다. Oliver의 대답은 여러 가지 시작 프로젝트가 소스 제어를 확인하는 것이 불가능한 것으로 보이지만 부끄러운 일이지만, 그렇게하는 것으로 보입니다.
Stephen Holt

376

Jon이 이미 말했듯 이 모든 사람이 시작 프로젝트를 스스로 정의 할 수 있어야합니다 . 그러나 전용 기본 설정을 사용하는 것이 좋으며 내가 알 수 있듯이 가능합니다!

솔루션 디렉토리에 .suo 파일이 없으면 Visual Studio는 .sln 파일의 첫 번째 프로젝트를 기본 시작 프로젝트로 선택합니다.

  1. Visual Studio를 닫고 자주 사용하는 텍스트 편집기에서 .sln 파일을 엽니 다. 4 행부터 모든 프로젝트가 ProjectEndProject행으로 캡슐화 된 것을 볼 수 있습니다 .

  2. 원하는 기본 시작 프로젝트를 잘라내어 최상위 위치에 붙여 넣습니다.

  3. .suo 파일을 삭제하십시오.

  4. Visual Studio에서 솔루션을 엽니 다. 타 다아!

Jon이 모르는 것을 알고 있다면 특별한 상이 있습니까? ;-)


1
피날레! 이것은 오랫동안 나를 괴롭 혔지만 더 이상은 아닙니다! Tkanks :)
mdonatas

4
솔루션 폴더에없는 경우에만 작동하는 것 같습니다.이 트릭은 내가 가진 일부 솔루션에 대한 경험을 바탕으로 루트 프로젝트에 효과적입니다.
jdehaan

25
와! 당신은 Skeeted Jon! :))
Andrei Rînea

3
기본 프로젝트가 두 개인 경우 어떻게해야합니까?
Amy B

6
@Oliver : 솔루션-> 시작 프로젝트 설정 ...-> 다중 시작 프로젝트를 마우스 오른쪽 단추로 클릭하십시오. 한 번의 클릭으로 여러 번 시작됩니다.
Anton

46

대부분의 경우, 수행 이에 기본을 가지고 이해.

기본 시작 프로젝트를 수용하고이를 .sln 파일에 저장하는 것이 훨씬 좋지만 개발자가 .suo 파일로 재정의 할 수 있습니다. .suo 파일에서 시작 설정을 찾을 수 없으면 .sln의 기본 시작 프로젝트가 사용됩니다.

실제로 이것은 Visual Studio의 UserVoice 에서 제안 되었습니다 .


연결된 UserVoice는 "투표 마감"이지만 이유에 대한 설명은 없습니다.
yzorg

이것은 허용 된 답변에 비해 확실히 더 나은 자세입니다. 한 번은 사용자 단위로 설정하는 것이 유리하다고 생각되는 팀 내에서 일한 적이 없습니다. 그것은 등 신선한 클론에 추가로 설치 단지 리드
트레버 리드

3

slnStartupProject시작 프로젝트를 자동으로 설정하는 Windows 용 작은 명령 줄 유틸리티를 작성했습니다 .

slnStartupProject slnFilename projectName

개인적 으로 더미 프로젝트를 솔루션의 첫 번째 프로젝트로 설정하는 cmake로 솔루션을 생성 한 후 시작 프로젝트를 설정하는 데 개인적으로 사용합니다 ALL_BUILD.

소스는 GitHub의에 있습니다. 포크와 피드백을 환영합니다.


감사합니다! 나는 cmake 에서이 문제를 겪고 있었고 유틸리티가 훌륭하게 작동합니다!
sippa

1
천만에요! 행복하게 해결하기로 결정하기 전에 몇 년 동안 나를 괴롭 혔으므로 도움이됩니다. 왜 사람들이 이것에 대해 철학적 싸움을하는지 이해하지 못하지만 대부분의 경우에 분명히 유용합니다.
michaK

.. 잠깐만 ... 뭐? -.sln 파일을 수동으로 생성합니까? ... 이것은 어떤 마법입니까?
BrainSlugs83

3

GIT를 사용하는 경우 기본 SUO 파일을 커밋 한 후 다음을 사용하여 변경되지 않은 것으로 표시 할 수 있습니다.

git update-index --assume-unchanged YourSolution.suo

기본 시작 그룹에 둘 이상의 프로젝트가있는 경우에도 작동합니다. 내가 아는 유일한 단점은 SUO 파일을 커밋하지 않으려는 모든 사람이이 명령을 실행해야한다는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.