TFS 2010 Build - 在构建期间注册VB 6.0 DLL

时间:2010-12-29 13:56:17

标签: tfs2010

我必须通过TFS 2010部署一个经典的ASP站点。该站点有许多自定义VB 6.0 DLL,需要在部署过程中取消注册和重新注册。有没有办法做到这一点?这是我第一次通过TFS使用构建过程的经验,所以它有点新鲜。

2 个答案:

答案 0 :(得分: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文件(请参见下面的屏幕截图)。

alt text

答案 1 :(得分:0)

好吧,我解决了这个问题,尽管不完全是在TFS构建过程中。我正在做的是,在构建过程完成后,我运行一个MS Deploy脚本,该脚本将TFS发布的文件复制到远程服务器。然后,在部署文件之后,我调用另一个运行已添加到项目的VBScript文件的msdeploy命令。 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

最后,注册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