안녕하세요

프로그램 과정에서 막혔던 문제들에 대한 해결책 정리


페이지 목록

2014년 4월 24일 목요일

[VS2010] 소스 제어 - 데이터베이스에 액세스할 수 없음

VC 6.0 => VC 2010으로 올리고 VC 6.0 Project를 여니깐 문제가 참 마니 나옵니다. 소스 제어 - 데이터베이스에 액세스 할 수 없음에 대한 MSDN의 설명이네요. 아래 내용을 분석해서 적용해 봐야겠네요 전문 복사합니다. 소스 제어 소개 Visual Studio 2008 다른 버전 Visual Studio 2005 이 항목은 아직 평가되지 않았습니다.- 이 항목 평가 업데이트: 2007년 11월 Visual Studio에서는 IDE(통합 개발 환경)에서 VSIP(Visual Studio Integration Protocol) 계층을 사용하여 소스 제어를 지원합니다. VSIP에서는 일반적으로 적합한 프로토콜에 맞게 작성된 플러그 인으로 구현되는 다양한 소스 제어 패키지를 호스팅할 수 있습니다. 소스 제어 플러그 인의 예로는 Visual SourceSafe에서 지원되는 SourceSafe LAN 플러그 인을 들 수 있습니다. 이 플러그 인에 대한 자세한 내용은 Visual SourceSafe 도움말을 참조하십시오. 참고: 소스 제어 패키지는 다른 유형의 소프트웨어 모듈로 구현될 수 있지만 Visual Studio에서는 소스 제어 패키지를 플러그 인으로 지칭합니다. Visual Studio 소스 제어는 단지 타사 소스 제어 플러그 인을 위한 환경이므로 플러그 인을 설치해야만 소스 제어 기능이 활성화됩니다. 타사 소스 제어 플러그 인을 사용하려면 일반적으로 타사 응용 프로그램 및/또는 소스 제어 플러그 인을 해당 클라이언트 및 서버 컴퓨터에 설치해야 합니다. 타사의 지침에 따라 플러그 인을 설치하면 Visual Studio에서 해당 플러그 인을 사용할 수 있습니다. 가능한 작업은 소스 제어 플러그 인에 따라 다릅니다. 패키지별 작업 정보는 타사 설명서를 참조해야 합니다. Visual Studio의 소스 제어 디자인에 대한 자세한 내용은 Visual Studio 도움말의 "개요(소스 제어)"를 참조하십시오. 또한 이 도움말 단원에서는 Visual Studio와 호환되는 타사 소스 제어 패키지를 개발하는 데 필요한 모든 정보를 제공합니다. Visual Studio의 소스 제어 지원에 대한 기본 사항 -------------------------------------------------------------------------------- Visual Studio에서는 기본적으로 Visual Studio 프로젝트, 솔루션, 파일, 관련 메타데이터의 버전 관리 및 조작, 소스 제어 플러그 인과 환경 옵션 설정, 플러그 인 전환, 데이터베이스 액세스 등의 소스 제어 지원을 제공합니다. Visual Studio의 소스 제어 기능을 사용하면 데이터베이스 액세스 제어를 위한 프로토콜이 적용됩니다. 이러한 프로토콜의 예로는 '잠금-수정-잠금 해제' 작업 스타일이 있으며 이 경우 파일을 수정하려면 우선 파일을 단독으로 체크 아웃해야 합니다. 소스 제어 플러그 인과 상호 작용하려면 Visual Studio 메커니즘의 소스 제어를 사용해야 합니다. 플러그 인을 지원하는 다른 클라이언트 응용 프로그램(예: Visual SourceSafe Explorer)을 사용하지 마십시오. Visual Studio에서 소스 제어 메커니즘을 적절히 사용하면 올바른 파일만 소스 제어에 추가되도록 할 수 있으며 Visual Studio 프로젝트와 솔루션이 올바른 플러그 인 관련 정보로 업데이트되도록 할 수 있습니다. 소스 제어 플러그 인 구성 및 전환 Visual Studio 소스 제어는 옵션 대화 상자의 소스 제어 항목을 통해 구성 및 플러그 인 전환을 지원합니다. Visual Studio의 도구 메뉴에서 옵션을 선택하면 이 항목에 액세스할 수 있습니다. 옵션 대화 상자를 사용하여 소스 제어에 사용할 플러그 인을 선택하고 해당 플러그 인에 맞는 환경 옵션을 설정합니다. Visual Studio IDE에서 소스 제어 기능을 활용하려면 먼저 다음 작업을 수행해야 합니다. •사용 가능한 소스 제어 플러그 인이 있는지 확인합니다. •사용하려는 소스 제어 플러그 인이 컴퓨터에 설치되어 있지 않으면 플러그 인을 지원하는 타사 제품을 설치하고 Visual Studio를 다시 시작한 후 이 제품을 등록합니다. •특정 플러그 인의 기능에 따라 소스 제어 데이터베이스를 만듭니다. •모든 팀 구성원에게 데이터베이스 위치에 대한 링크를 보냅니다. 데이터베이스 액세스 Visual Studio의 파일 메뉴에서 기본적인 데이터베이스 액세스 명령(예: 체크 아웃, 소스 제어에 추가)을 사용할 수 있습니다. 그러나 사용하려는 소스 제어 플러그 인을 선택해야만 이러한 명령이 활성화됩니다. 기본 데이터베이스 액세스 명령 중 하나를 사용하면 선택한 플러그 인에서 해당 타사 기능 및/또는 환경을 호출하여 관련 작업을 완료합니다. 일부 액세스 작업은 플러그 인만 선택해도 활성화되지만, 그밖의 작업은 Visual Studio의 솔루션 탐색기에서 Visual Studio 프로젝트, 솔루션 또는 파일도 선택해야만 활성화됩니다. 예를 들어, 소스 제어에 추가 명령은 플러그 인만 선택해도 사용할 수 있지만, 체크 인 명령은 솔루션 탐색기에서 항목을 선택해야만 사용할 수 있습니다. 소스 제어의 파일 처리 -------------------------------------------------------------------------------- Visual Studio 소스 제어에 추가할 수 있는 파일은 다음과 같습니다. •솔루션 파일(*.sln) •프로젝트 파일(예: *.csproj, *.vbproj 파일) •Visual Studio 프로젝트의 런타임 동작을 제어하는 데 사용되는 XML 기반의 응용 프로그램 구성 파일 소스 제어에 추가할 수 없는 파일은 다음과 같습니다. •솔루션 사용자 옵션 파일(*.suo) •프로젝트 사용자 옵션 파일(예: *.csproj.user, *.vbproj.user 파일) •웹 프로젝트의 가상 루트 위치를 제어하는 웹 정보 파일(예: *.csproj.webinfo, *.vbproj.webinfo) •빌드 출력 파일(예: *.dll 및 *.exe 파일) 네임스페이스 변경 전파 -------------------------------------------------------------------------------- Visual Studio 소스 제어는 소스 제어 플러그 인에서 네임스페이스 변경 전파를 지원합니다. 변경 전파는 작업 삭제, 이름 바꾸기 및 이동 작업에 적용됩니다. 변경 전파가 설정된 작업을 요청할 경우 이미 체크 인한 항목을 다른 사용자가 검색하면 소스 제어 플러그 인에서 소스 제어 항목의 작업 복사본, 데이터베이스의 마스터 복사본 및 다른 사용자의 복사본을 모두 변경합니다. 소스 제어에서 솔루션 및 프로젝트를 처리하는 방법 -------------------------------------------------------------------------------- 솔루션 또는 프로젝트를 소스 제어에 추가할 때 소스 제어 플러그 인은 추가할 항목의 통합 루트를 먼저 식별해야 합니다. 이 루트는 솔루션 또는 프로젝트를 구성하는 모든 작업 폴더 및 파일의 부모 디렉터리에 대한 경로입니다. 통합 루트는 일반적으로 디스크상의 물리적 경로에 매핑됩니다. 그러나 둘 이상의 디스크 드라이브에 있는 파일 또는 프로젝트가 솔루션에 포함된 경우에는 통합 루트를 물리적 폴더에 매핑할 수 없습니다. 솔루션은 여러 드라이브에 걸쳐 있을 수 있지만 소스 제어 통합 루트는 그렇지 않습니다. 이런 경우를 위해 Visual Studio 소스 제어는 상위 통합 루트의 개념을 지원합니다. 상위 통합 루트는 소스 제어 솔루션의 모든 프로젝트 및 파일이 위치하는 가상 컨테이너입니다. 고급 기능이 있는 소스 제어 플러그 인을 사용하여 솔루션을 추가하면 데이터베이스에 빈 솔루션 루트 폴더가 만들어집니다. 이 폴더에는 소스 제어 솔루션의 모든 항목이 포함됩니다. 기본적으로 이 폴더는 .root입니다. 참고: 단일 프로젝트를 소스 제어에 추가할 때는 .root 폴더가 만들어지지 않습니다. 솔루션 루트를 사용하면 다음과 같은 이점이 있습니다. •확인 메시지가 감소됩니다. 솔루션 루트는 솔루션에 추가할 수 있는 소스 제어 바인딩 수를 최소화하므로 소스 제어에 솔루션을 추가하고 다른 작업을 수행할 때 사용자에게 묻는 메시지가 최소화됩니다. •프로젝트를 캡슐화합니다. 솔루션 루트를 사용하면 하나 이상의 프로젝트가 여러 파티션 또는 컴퓨터에 있더라도 솔루션의 모든 프로젝트를 한 군데 모아 놓은 것처럼 쉽게 식별할 수 있습니다. .root 폴더를 만들지 않도록 설정할 수도 있지만 이러한 설정은 권장되지 않습니다. 자세한 내용은 방법: .root 폴더 만들기 사용 안 함을 참조하십시오. Visual Studio의 솔루션은 구조가 제대로 구성되는 경우도 있고 그렇지 않은 경우도 있습니다. 구조가 제대로 구성된 솔루션은 디스크상의 계층 구조가 솔루션 탐색기에서의 해당 구조와 일치하는 솔루션입니다. 제대로 구성된 솔루션에서 모든 프로젝트는 디스크에서 솔루션 폴더의 하위 폴더에 저장됩니다. 솔루션의 구조가 제대로 구성되면 소스 제어에 이 솔루션을 추가할 때 솔루션 제어 플러그 인은 *.root 폴더 아래에 하나의 폴더를 만들어 솔루션의 솔루션 파일(*.sln) 및 솔루션 사용자 옵션 파일(*.suo)의 마스터 복사본을 보관합니다. 마지막으로, 솔루션 제어 플러그 인은 소스 제어 데이터베이스에 프로젝트가 추가될 때마다 .sln 폴더 아래에 해당 폴더를 만듭니다. 솔루션 구조가 제대로 구성되어 있지 않으면 솔루션 제어 플러그 인은 솔루션 및 해당 초기 프로젝트에 대해 하나의 폴더를 만듭니다. 그리고 그 후에 추가되는 각 프로젝트에 대한 폴더가 솔루션 폴더 옆에 나란히 만들어집니다. 솔루션 또는 프로젝트의 뷰 -------------------------------------------------------------------------------- Visual Studio는 소스 제어 솔루션 또는 프로젝트에 대해 디자인 뷰, 소스 제어 뷰 및 실제 뷰의 세 가지 뷰를 제공합니다. 이러한 뷰의 개별 요소가 서로 1대1로 매핑되면 여러 가지 소스 제어 작업을 쉽게 수행할 수 있습니다. 그러나 Visual Studio의 기본 설정을 사용하여 솔루션과 프로젝트를 만들어 소스 제어에 추가하면 솔루션 탐색기 및 데이터베이스에서와 같은 방식으로 솔루션과 프로젝트를 디스크상에 구성할 필요가 없습니다. 솔루션 탐색기에서 볼 수 있는 솔루션 또는 프로젝트의 디자인 뷰는 솔루션 또는 프로젝트의 내용을 논리적으로 묘사합니다. 일반적으로 디자인 뷰에서는 논리 정연하게 의미를 전달합니다. 필요 없는 파일은 숨겨지고 여러 물리적 위치의 파일들이 단일 프로젝트 컨테이너 안에 포함됩니다. 독립 실행형 응용 프로그램(예: Visual SourceSafe Explorer)에서 볼 수 있는 솔루션 또는 프로젝트의 소스 제어 뷰도 역시 솔루션 또는 프로젝트의 논리 뷰입니다. 그러나 소스 제어 뷰는 논리 뷰와 완전히 동일하지는 않습니다. Windows 파일 탐색기에서 볼 수 있는 솔루션 또는 프로젝트의 실제 뷰는 그 구조가 논리 뷰 또는 소스 제어 뷰의 계층 구조와 다릅니다. 다음 지침을 따르면 소스 제어 솔루션 및 프로젝트의 디자인 뷰, 실제 뷰 및 소스 제어 뷰 간에 구조적인 상관성을 이룰 수 있습니다. •먼저 빈 솔루션을 만들고 프로젝트를 솔루션에 추가합니다. 이렇게 하면 솔루션과 해당 프로젝트 간의 논리적 부모-자식 관계를 저장소에 유지할 수 있습니다. 그런 다음 솔루션을 소스 제어에 추가하면 디스크상의 솔루션 계층 구조가 소스 제어 뷰 및 디자인 뷰에 미러링됩니다. •각 솔루션의 이름은 포함된 각 프로젝트의 이름과 다르게 하며 솔루션의 내용을 반영할 수 있도록 지정합니다. •소스 제어 솔루션 또는 프로젝트에는 링크 파일을 추가하지 않습니다. •가능하면 솔루션 또는 프로젝트의 모든 파일을 하나의 디스크 드라이브에 저장합니다. 소스 제어 연결 및 바인딩 -------------------------------------------------------------------------------- Visual Studio에서 연결은 Visual Studio와 데이터베이스 서버 간의 라이브 데이터 링크입니다. 솔루션 또는 프로젝트를 소스 제어에 추가하면 소스 제어 플러그 인은 그 항목과 모든 해당 내용을 디스크에서 데이터베이스로 복사합니다. 솔루션 또는 프로젝트 파일을 포함하는 각 폴더에 대해 소스 제어 폴더가 하나씩 만들어집니다. 항목을 추가한 후에는 솔루션 또는 프로젝트의 로컬 작업 복사본이 데이터베이스의 해당 버전에 바인딩됩니다. 모든 소스 제어 솔루션에는 소스 제어 바인딩이 하나 이상 있습니다. 그러나 항목은 여러 개의 바인딩을 가질 수 있으며 데이터베이스에 대해 여러 개의 연결을 필요로 합니다. 바인딩 및 연결의 수는 처음에 솔루션을 만든 방법과 해당 프로젝트 및 파일이 모두 동일 파티션에 저장되었는지 여부에 따라 다릅니다. 바인딩 및 연결을 설명하기 위해, 여러 개의 프로젝트가 포함된 올바른 형식의 소스 제어 솔루션을 여러 개의 방이 있는 집에 비유해 보겠습니다. 집을 건축할 때 하나의 방에서 외부로 연결되는 하나의 고속 데이터 라인를 설치한다고 합시다. 방화벽이 구성된 라우터를 설치하여 다른 방에도 데이터 공급이 이루어지게 하고 하나의 인터넷 서비스에 가입하여 인터넷에 연결합니다. 소스 제어 바인딩은 집에 설치한 하나의 데이터 라인에 비유할 수 있습니다. 소스 제어 솔루션을 열면 바인딩을 통해 연결이 이루어집니다. 그러면 디스크에 있는 솔루션의 작업 복사본과 데이터베이스에 있는 솔루션의 마스터 복사본 사이에 핸드셰이크가 설정됩니다. 구조가 제대로 구성되지 않은 소스 제어 솔루션은 모든 방이 인터넷에 직접 연결된 집에 비유할 수 있습니다. 이 경우, 데이터 라인이 하나만 연결된 집보다 인터넷 요금도 많이 들고, 유지 관리 비용도 높고, 다른 인터넷 서비스로 전환할 때도 훨씬 번거롭고 시간이 오래 걸립니다. 그러므로 솔루션 및 해당 프로젝트가 하나의 소스 제어 바인딩을 공유하는 것이 이상적입니다. 하나의 바인딩을 사용하는 솔루션은 여러 개의 바인딩을 사용하는 솔루션에 비해 관리가 용이하며 다음과 같은 장점이 있습니다. •오프라인 작업을 위해 소스 제어에 대한 연결을 끊기가 쉽습니다. •네트워크에 다시 연결한 후 데이터베이스에 연결하기가 쉽습니다. •한 단계에서 분기하기가 쉽습니다. 프로젝트를 추가하기 전에 빈 솔루션을 만들면 하나의 바인딩을 사용하는 다중 프로젝트 솔루션을 만들 수 있습니다. 솔루션-프로젝트 쌍을 만들 때 새 프로젝트 대화 상자에서 솔루션용 디렉터리 만들기 옵션을 선택해도 이 작업을 수행할 수 있습니다. 한 단계에서 솔루션-프로젝트 쌍을 만들고 새 프로젝트 대화 상자에서 솔루션용 디렉터리 만들기를 선택하지 않으면(기본적으로 선택되어 있지 않음) 솔루션에 두 번째 프로젝트를 추가할 때 두 번째 바인딩이 만들어집니다. 초기 프로젝트와 솔루션에 대해 하나의 바인딩이 만들어지고, 다른 프로젝트를 추가할 때마다 추가 바인딩이 만들어집니다. 소스 제어 용어 -------------------------------------------------------------------------------- Visual Studio 설명서에서는 여러 용어를 사용하여 소스 제어 기능과 개념을 설명합니다. 다음 표에서는 일반적인 용어 몇 가지를 정의합니다. 기본 버전 로컬 버전이 파생된 파일의 서버 버전입니다. 바인딩 디스크에 있는 솔루션 또는 프로젝트의 작업 폴더를 데이터베이스에 있는 해당 폴더와 연관시킨다는 의미입니다. 분기 소스 제어에서 사용 중인 공유 파일 또는 프로젝트의 새 버전(또는 분기)을 만드는 프로세스입니다. 분기가 만들어지면 소스 제어의 두 버전은 특정 시점까지 기록을 공유하며 그 시점 이후에는 각각 별도의 기록을 갖습니다. 충돌 두 명 이상의 개발자가 동일한 파일을 체크 아웃하여 편집한 경우 동일한 코드 줄에 대해 서로 다른 내용을 적용하려고 할 때 발생합니다. 연결 소스 제어 클라이언트(예: Visual Studio)와 소스 제어 데이터베이스 서버 간의 라이브 데이터 링크입니다. 데이터베이스 모든 마스터 복사본, 기록, 프로젝트 구조 및 사용자 정보가 저장되는 위치입니다. 하나의 프로젝트는 항상 하나의 데이터베이스 내에 포함됩니다. 여러 프로젝트가 하나의 데이터베이스에 저장될 수도 있고, 여러 데이터베이스가 사용될 수도 있습니다. 데이터베이스를 리포지토리 또는 저장소라고도 합니다. 사용 기록 처음에 파일을 소스 제어에 추가한 후 파일의 변경 내용에 대한 기록입니다. 버전 제어를 사용하면 파일 기록에서 임의의 시점으로 되돌아가 그 시점의 상태로 파일을 복구할 수 있습니다. 레이블 특정 버전의 소스 제어 항목에 지정된 사용자 정의 이름입니다. 로컬 복사본 사용자의 작업 폴더에 있는 파일이며 체크 인할 때까지 변경 내용이 저장됩니다. 로컬 복사본을 작업 복사본이라고도 합니다. 마스터 복사본 작업 폴더에 있는 파일의 로컬 복사본과 별개로, 가장 최근에 체크 인된 소스 제어 파일 버전입니다. 마스터 복사본을 서버 버전 또는 데이터베이스 버전이라고도 합니다. 병합 수정된 버전의 파일 두 개 이상을 하나의 새로운 파일 버전으로 결합하는 프로세스입니다. 이러한 병합은 동일한 파일의 여러 버전 또는 동일한 파일 버전의 변경 내용에 영향을 줄 수 있습니다. 공유 파일 둘 이상의 소스 제어 위치에서 여러 개의 파일 버전을 가지는 파일입니다. 공유 파일을 복사본 또는 바로 가기라고도 합니다. 솔루션 루트 소스 제어 솔루션의 모든 항목이 들어 있는 데이터베이스의 빈 폴더입니다. 기본적으로 이 폴더는 .root입니다. 상위 통합 루트 소스 제어 솔루션의 모든 프로젝트 및 파일이 위치하는 가상 컨테이너입니다. 예를 들어, [SUR]:\는 [SUR]:\C:\Solution\ProjOne 및 [SUR]:\D:\ProjTwo에 위치한 프로젝트들을 포함하는 소스 제어 솔루션의 상위 통합 루트입니다. 통합 루트 소스 제어 솔루션 또는 프로젝트의 모든 작업 폴더 및 파일에 대한 부모 디렉터리 경로입니다. 예를 들어, C:\Solution은 C:\Solution, C:\Solution\ProjOne 및 C:\Solution\ProjTwo에 위치한 파일들을 포함하는 소스 제어 솔루션의 통합 루트입니다. 작업 폴더 소스 제어 항목의 로컬 복사본이 저장되는 위치이며 일반적으로 사용자의 컴퓨터에 있습니다. 작업 폴더를 작업 영역이라고도 합니다. 출처 : http://msdn.microsoft.com/ko-kr/library/ms171339(v=vs.90).aspx