TFS 2010의 역사적 빌드 용 드롭 폴더를 어떻게 변경합니까?

StackOverflow https://stackoverflow.com//questions/9636889

  •  10-12-2019
  •  | 
  •  

문제

빌드 삭제 위치에 사용 된 서버는 은퇴 중입니다.현재 빌드 정의를 변경하여 새 서버를 사용하도록 변경하는 방법을 알고 있지만 이미 완료 한 빌드의 기록 레코드를 어떻게 변경합니까?나는 과거 빌드를 열고 '열린 드롭 폴더'를 클릭하고 새 서버로 이동하고 싶습니다.이전 빌드를 새 서버에 수동으로 복사합니다.

도움이 되었습니까?

해결책

다음 샘플이 작동하는 것처럼 보입니다 :

using System;
using System.Collections.Generic;
using Microsoft.TeamFoundation.Build.Client;
using Microsoft.TeamFoundation.Client;

namespace ChangeDropLocation
{
    class Program
    {
        static void Main()
        {
            TfsTeamProjectCollection teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://MyServer:8080/tfs/Collection"));
            var buildService = (IBuildServer)teamProjectCollection.GetService(typeof(IBuildServer));

            IBuildDetail buildDetail = buildService.GetBuild(new Uri("vstfs:///Build/Build/1506"));
            buildDetail.DropLocation ="\\somewhere";
            var buildDetails = new List<IBuildDetail>();
            buildDetails.Add(buildDetail);
            buildService.SaveBuilds(buildDetails.ToArray());
        }
    }
}
.


사용자가 고려해야 할 한 가지는 빌드 정보를 업데이트 할 수있는 권한이 없을 것입니다.첫 번째 시도에서는 프로젝트 관리자이지만 다음을 얻었습니다.

TF215106 : 액세스가 거부되었습니다.Domain \ 사용자 이름 업데이트 빌드가 필요합니다 빌드 정의에 대한 정보 권한 팀의 MyBuildDefinition. 작업을 수행하려면 MyTeamProject를 프로젝트하십시오.자세한 내용은, Team Foundation Server 관리자에게 문의하십시오.

이를 극복하기 위해 TeamExplorer "빌드"를 마우스 오른쪽 버튼으로 클릭하여 "보안 ..."을 선택하십시오.

다른 팁

나는 이것을 할 수있는 도구를 모른다.어쩌면 TFS PowerShell 명령이있을 수 있지만 Cource의 적절한 예방 조치를 취한 후에 SQL DB를 직접 업데이트 한 후에는 SQL DB를 직접 업데이트하십시오.

드롭 위치에 대한 매핑은 tbl_build의 컬렉션 SQL DB에 저장됩니다.

[droplocation], [droplocationRoot], [loglocation], [TBL_Build]

는 창고에 영향을 미치는지 확실하지 않습니다.처음을 확인하고 싶을 수도 있습니다.

Microsoft는 일반적으로 SQL을 이와 같은 것에 대해 직접 조작하는 것을 권장합니다.대신 TFS API를 사용하여 상대적으로 안전한 접근 방식이 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top