2010-12-29 9 views
0

TFS 2010을 통해 고전적인 ASP 사이트를 배포해야합니다.이 사이트에는 배포 프로세스 중에 등록 취소되고 다시 등록해야하는 많은 사용자 지정 VB 6.0 DLL이 있습니다. 이것을 할 수있는 방법이 있습니까? 이것은 TFS를 통한 빌드 프로세스를 사용한 나의 첫 경험이므로 조금 새로운 것입니다.TFS 2010 빌드 중 VB 6.0 DLL 빌드

답변

0

글쎄, 난 종류의 문제를 해결했다. 내가하고있는 일은 빌드 프로세스가 완료된 후 MS 배포 스크립트를 실행하고 그 스크립트가 TFS에서 게시 한 파일을 원격 서버에 복사하는 것입니다. 그런 다음 파일이 배포 된 후 프로젝트에 추가 된 VBScript 파일을 실행하는 다른 msdeploy 명령을 호출합니다. VBScript 코드는 프로젝트를 반복하고 찾은 모든 DLL을 다시 등록합니다.

msdeploy -verb:sync -source:contentpath=C:\temp\Build\_PublishedWebsites\TestSite -dest:contentPath=D:\Inetpub\wwwroot\TestSite,computername=RemoteSystem:1111 
msdeploy -verb:sync -source:runcommand="D:\Inetpub\wwwroot\TestSite\RegisterFiles.vbs",waitinterval=10000 -dest:auto,computername=RemoteSystem:1111 

마지막으로, DLL을 등록하는 VBScript 파일 :

Set oShell = CreateObject ("WScript.Shell") 

Dim FSO, FLD, FIL 
Dim strFolder, strPath 

strFolder = "D:\Inetpub\wwwroot\TestSite\DLLs\" 

'Create the filesystem and folder objects 
Set FSO = CreateObject("Scripting.FileSystemObject") 
set FLD = FSO.GetFolder(strFolder) 

'Loop through the DLLs in the folder 
For Each Fil In FLD.Files 

    If Instr(Fil.Name,".dll") Then 
    strPath = strFolder & Fil.Name 
    oShell.Run "regsvr32 /s /u " & strPath 
    oShell.Run "regsvr32 /s " & strPath 

    End If 

Next 

If isObject(oShell) Then 
    Set oShell = Nothing 
End IF 

Set FLD = Nothing 
Set FSO = Nothing 
0

팀 빌드를 사용하여 사용자 지정 작업을 수행하려는 경우이 노드를 TFSBuild.proj 파일에 추가 할 수 있습니다. DLL을 등록하려면, 당신이 할 수 있습니다 :

<Target Name="AfterGet"> 
    <Exec Command="echo SolutionRoot=$(SolutionRoot)" /> 
    <Exec Command="regsvr32 /s $(SolutionRoot)\SharedBinaries\STServer.dll" /> 
</Target> 

는 TFSBuild.proj 파일을 얻으려면, 당신은 소스 제어 탐색기로 이동 한 후 TeamBuildTypes 폴더 아래에 가서 당신은 당신의 빌드 이름을 볼 수 있습니다. 그것을 클릭하고 오른쪽 창에서 TFSBuild.proj 파일을 볼 수 있습니다 (아래 스크린 샷 참조). 아니 정확히 TFS에서 프로세스를 구축하지만

alt text

+0

나는 TFSBuild.proj 파일을 볼 수 없습니다를 여기

배치 파일에서 호출 된 MS 배포 스크립트입니다 - 그것이 어디에 있습니까? – Scott

+0

@Scott - 내 대답이 업데이트되었습니다. 도움이되기를 바랍니다. – dcp

+0

아직 보이지 않습니다. 특정 사용자 또는 사용자 그룹으로 제한되는지 알고 있습니까? – Scott