솔루션 파일을 "항상"체크 아웃하지 못하도록 Visual Studio를 중지하는 방법은 무엇입니까?


152

분명히 아무 이유없이 솔루션을 열 때마다 Visual Studio에서 sln 파일을 확인합니다.

이전 버전과 비교하면 변경 사항이 없습니다. 그러나 모두가 솔루션을 체크 아웃했기 때문에 이것은 정말 실망 스럽습니다.

SP2와 VS 2008 및 TFS 2008을 사용하고 있습니다.

이 일을 막을 수있는 방법에 대한 아이디어가 있습니까? 아니면 VS 용 TFS 소스 제어 제공자의 기능 / 버그입니까?


솔루션의 일부로 단위 테스트 프로젝트가 있습니까?
Mitch Wheat

1
TFS는 동시 체크 아웃을 지원하며 .sln 파일을 수정하지 않으면 다중 체크 아웃에 문제가 없습니다.
Dirk Vollmar

5
* .sln 파일에 실제 변경 사항이있는 경우 프로젝트에 임의의 고유하지 않은 ID가 제공되므로 병합하기가 끔찍한 악몽입니다. 동시 체크 아웃을 대변하는 사람이지만 대부분의 * .sln을 잠금 상태로 유지합니다.
Richard Berg

3
이것은 VS2013에서 수정되었습니다 !!! 나는 2012 년에 동일한 솔루션을 열고 2013 년에 .sln을 확인하고 명확하게 유지합니다.
felickz

2
Visual Studio 2010에서 최신 버전 인 Visual Studio 2015 Update 3까지 모든 버전에서 때때로 이것을 보았습니다. 솔루션을 여는 시간의 약 절반이 발생하며 솔루션에는 더 자주 나타납니다. 많은 프로젝트와 함께.
Tore Østergaard

답변:


121

.sln 파일에 다음이있을 때 발생합니다.

GlobalSection(ExtensibilityGlobals) = postSolution
    MyGlobalProperty = AnyValue
EndGlobalSection

Enterprise Library가 이들 중 하나를 추가 한 것을 발견했습니다. 나는 그것을 제거하고 솔루션을 체크인하고 닫은 다음 다시 열었고 더 이상 자동 체크 아웃하지 않았다.


21
Unity NuGet 패키지가 VS 2010의 솔루션 파일 에서이 작업을 수행 한 것처럼 보입니다.이 섹션을 제거하고 자동 체크 아웃 문제가 해결되었습니다. 감사합니다 Graham!
Dan Mork

14
내가 가장 좋아하는 두 가지 기술-TFS와 EntLib-정말 사랑스러운 한 쌍입니다.

1
이러한 섹션이 있지만 유지하려는 데이터가 포함되어 있으므로 제거하고 싶지 않습니다. 지금 무엇? MS는이 문제를 "복제 할 수 없음"으로 닫았습니다. connect.microsoft.com/VisualStudio/feedback/details/573538/…
mattanja

Dan의 의견은 필요한 정보를 추가합니다. 모든 전역 섹션 을 제거 할 필요는 없습니다 . 단일 nuget 패키지에 의해 추가 된 것처럼 보입니다.
Jordan0Day

2012 년에도 여전히 동일
BlackICE

6

메모리에서 도구, 옵션 메뉴 를 사용하고 소스 제어, 환경 패널을 선택 하면 IDE가 버전 제어와 인터페이스하는 방식을 구성하기위한 몇 가지 옵션이 있어야합니다.

이러한 옵션 중 일부는 공개 행동 의 결제를 제어한다고 생각 합니다.


1
예 ... 자동으로 체크 아웃하거나 체크 아웃하라는 메시지를 표시하거나 아무 것도 할 수 없습니다. 그러나이 문제를 해결하는 데 도움이되는 것은 없습니다
CodeClimber

메시지가 표시되면 "아니요, 체크 아웃하지 마십시오"라고 말할 수 없습니까?
Scott Marlowe

내가 팀에서 유일하게 개발자
였으면 좋겠다

CodeClimber는 VS를 시작할 때마다 자동 체크 아웃을 수행하며 자동 체크 아웃을 중지하고 끄면 문제가 해결되지 않습니다. 뭐야?
veight

1
옵션 목록에 "환경"이없는 사용자의 경우 연결을 "로컬"에서 "서버"로 변경하십시오 (소스 : stackoverflow.com/questions/26843300/… )
VenerableAgents

5

나처럼, 당신이 그것을 작동시키지 못하고 하나 이상의 프로젝트가 체크 아웃되는 것을 발견하면 더 간단한 해결책을 찾았습니다. 계속 확인하고있는 프로젝트를 기록해 두십시오. 파일-소스 제어-소스 제어 변경으로 이동 한 다음 해당 프로젝트를 바인드 해제하십시오. 확인, 모두 저장을 클릭 한 다음 소스 제어 변경으로 돌아가서 프로젝트에 다시 솔루션에 바인딩하십시오. 잘하면 이것은 다른 사람들을 위해 작동합니다



3

체크 아웃을 허용 한 후 두 파일을 비교하십시오. VS가 다음과 같은 것을 추가하면

<Service Include="{B4F97281-0DBD-4835-9ED8-7DFB966E87FF}" />

VS2008에서 솔루션으로 VS 버그가 발생했지만 VS2005로 포팅되지 않았습니다.

자세한 내용은 이 링크 를 확인 하십시오.


솔루션에 어떤 프로젝트
도이

2

Visual Studio 솔루션 파일은 Microsoft Enterprise Library를 사용하여 하나 이상의 솔루션 프로젝트를 통해 자동으로 체크 아웃됩니다.이 파일은 다양한 응용 프로그램 블록의 구성 관리를 허용하는 Enterprise Library 구성 유틸리티와 관련이 있다고 생각합니다 -http : //msdn.microsoft.com/en-us/library/ff649479.aspx

이 Microsoft 의견 게시를 참조하십시오 : http://connect.microsoft.com/VisualStudio/feedback/details/737184/globalsection-extensibilityglobals-postsolution-checks-out-sln-file-on-open


링크 Nigel에 감사드립니다. 모든 팀에서이 문제가 발생했습니다
Baldy

1

솔루션 내에로드되는 프로젝트 시스템 중 하나의 기능 / 버그입니다. 사라질 때까지 다양한 유형의 프로젝트 (C #, VB, C ++, 웹 사이트, 웹 앱, 단위 테스트, silverlight ...)를 제거하십시오. 그게 당신의 대답입니다.


0

비교하기 전에 파일을 저장하고 있습니까? 그것은 얼마 전에 나와 함께 일어 났으며 파일 사이에 변경 사항이 없다고 말했지만 얼마 후에 파일을 저장하지 않았으며 메모리의 버전이 아닌 디스크의 버전과 비교하고 있음을 알게되었습니다.

Visual Studio에서 솔루션을 열 때마다 .sln 또는 프로젝트 파일이 변경 될 수있는 일부 작업을 수행 한 다음 파일을 체크 아웃하라는 메시지가 표시됩니다. 개발자 컴퓨터의 폴더 구조가 변경되거나 모든 파일의 버전이 동일하지 않은 경우에 발생합니다. 누군가가 일부 폴더에 프로젝트를 추가하고 다른 개발자가 다른 위치에 동일한 프로젝트를 가지고있을 수 있습니다. 이 문제가 발생하는 또 다른 사례는 일부 C ++ 프로젝트가있는 솔루션이있을 때 어떤 이유로이 c ++ 프로젝트 중 하나에 절대 경로가있는 .res 파일이있는 것입니다. VS 가이 파일을 자동으로 생성하면 개발자 컴퓨터에서 개발자 컴퓨터로 변경 사항이 유지됩니다.

.sln 파일을 열고 소스 컨트롤에서 어떤 파일을 가져 왔는지에 따라 일부 개발자 컴퓨터에는 없을 수있는 절대 경로 또는 상대 경로를 찾아 보는 것이 좋습니다.

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