문제

저는 Team Foundation Server를 처음 사용하고 C#을 사용하여 프로그래밍 방식으로 프로젝트에 연결하려고합니다. 다음과 같은 코드 블록이 있습니다 ...

string serverName = "http://tfs01:8080";
TeamFoundationServer tfs = new TeamFoundationServer(serverName);
VersionControlServer version = (VersionControlServer)tfs.GetService(typeof (VersionControlServer));
Workspace workspace = version.GetWorkspace("Test", version.AuthenticatedUser);
MessageBox.Show(workspace.Name);

코드를 실행하면 다음 오류가 발생합니다 ...

TF14061: The workspace Test;vercuskis does not exist.

"테스트"프로젝트는 루트에서 벗어 났으며 VS 2008 Team Explorer의 Visibile입니다. 보안에 액세스 할 수 있으며이를 사용하여 코드를 체크인 및 아웃 코드 만 사용합니다.

코드 내에서 "테스트"프로젝트가 올바르게 참조되었는지 확실하지 않습니다. TFS 루트에서 프로젝트 이름을 참조하는 방법의 예를 찾고 있습니다.

고맙습니다,

도움이 되었습니까?

해결책

문제는 위의 코드에서 "테스트"가 TFS의 프로젝트가 아니라 TFS 작업 공간을 의미한다는 것입니다. TFS는 디렉토리 및 프로젝트를 맵핑하는 작업 공간이라는 아이디어를 사용합니다.

사용중인 작업 공간은 소스 컨트롤 탐색기 Windwo에 상단을 향해 표시됩니다. '작업 공간 :'그리고 사용중인 작업 공간의 이름입니다.

다음은 작업 공간에 관한 좋은 리소스입니다. http://www.woodwardweb.com/teamprise/000333.html

그러면 TFS에서 폴더 매핑도 가져와야 할 것입니다. TFS Documenton은 드문이며, 내가 한 작업의 대부분은 TFS의 작동 방식과 API가 Visual Studio에서 소스 제어 탐색기 사용과 어떻게 다른지 이해하기 위해 약간의 시행 착오가 필요합니다.

다른 팁

Brian이 말했듯이, 당신은 작업 공간이 무엇인지 혼란스럽게합니다. 그의 링크는 좋은 것입니다. http://www.woodwardweb.com/teamprise/000333.html

버전 제어 시스템에 대한 기록 정보를 쿼리하려고하고 파일을 확인/체크 아웃하지 않으려면 작업 영역이 전혀 필요하지 않습니다. versioncontrolserver 객체를 사용하기 만하면됩니다.

  • queryitems = "tf dir"
  • QueryItemSeptended = "TF 속성"
  • QueryPendingChanges = "TF 상태"
  • QueryHistory = "TF history" - 조심, 열거는 추가 서버 왕복을 유발합니다. 수익률 수익률
  • 기타 등

나는 같은 문제가 있었는데, VS의 작업 공간이 여러 프로젝트와 매핑 되었기 때문이라고 생각합니다. 그래서 하나의 매핑 된 프로젝트만으로 새 작업 공간을 만들었습니다.

내 작업 솔루션 : VS에서 CMD를 엽니 다. tf workspace /new /s:http://tfs2010.server.com:8080/tfs

이와 같이:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>tf workspace /new /s:http://tfs2010.server.com:8080/tfs

새 작업 공간을 설정하라는 메시지가 표시됩니다. 이름 : 원하는 작업 공간 이름 (공간 또는 특수 숯 없음) 소스 컨트롤 폴더 : $/FolderName로컬 폴더 : C:\FolderName

Code에서 입력 된 작업 공간 이름을 사용하십시오

    this._server = config.GetAttribute("server");
    **this._workspace = config.GetAttribute("workspace");**
    this._user = config.GetAttribute("user");
    this._password = config.GetAttribute("psw");
    TeamFoundationServer tfs = new TeamFoundationServer(this._server, new System.Net.NetworkCredential(this._user, this._password));
    tfs.Authenticate();
    VersionControlServer versionControl = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));
    Workspace ws = versionControl.GetWorkspace(this._workspace, this._user);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top