Сборка TFS 2010 - регистрация библиотек VB 6.0 во время сборки - PullRequest
0 голосов
/ 29 декабря 2010

Мне нужно развернуть классический сайт ASP через TFS 2010. На этом сайте есть много пользовательских библиотек VB 6.0, которые необходимо отменить и повторно зарегистрировать в процессе развертывания. Есть ли способ сделать это? Это мой первый опыт использования процесса сборки через TFS, так что все это немного ново.

Ответы [ 2 ]

0 голосов
/ 11 февраля 2011

Ну, я вроде решил проблему, хотя не совсем в процессе сборки TFS.Что я делаю, так это то, что после завершения процесса сборки я запускаю сценарий MS Deploy, который копирует файлы, опубликованные TFS, на удаленный сервер.Затем, после того, как файлы были развернуты, я вызываю другую команду msdeploy, которая запускает файл VBScript, который был добавлен в проект.Код VBScript проходит по проекту и перерегистрирует все найденные библиотеки DLL.

Вот сценарии MS Deploy, вызываемые в пакетном файле:

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

Наконец, файл VBScriptкоторый регистрирует библиотеки DLL:

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 голосов
/ 29 декабря 2010

Если вы хотите выполнять пользовательские задачи при сборке вашей команды, вы можете добавить такой узел в ваш файл 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 (см. Скриншот ниже).

alt text

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...