2010-12-29 21 views
0

TFS 2010を使用して従来のASPサイトを展開する必要があります。このサイトには、展開プロセス中に登録を解除して再登録する必要があるカスタムVB 6.0 DLLが多数あります。これを行う方法はありますか?これはTFSによるビルドプロセスを使用した私の最初の経験なので、少し新しくなっています。TFS 2010ビルド中にVB 6.0 DLLを登録する

答えて

0

まあない正確TFSのビルドプロセスでも、私は一種の、問題を解決しました。私がやっていることは、ビルドプロセスが完了した後、MS Deployスクリプトを実行し、そのスクリプトがTFSによって公開されたファイルをリモートサーバーにコピーすることです。その後、ファイルが展開された後、プロジェクトに追加されたVBScriptファイルを実行する別のmsdeployコマンドが呼び出されます。 VBScriptコードはプロジェクトをループし、見つかったすべてのDLLを再登録します。ここで

は、バッチファイルで呼び出される、MSのデプロイスクリプトです:

最後に
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ファイルが表示されます(下記のスクリーンショットを参照)。

alt text

+0

私はTFSBuild.projファイルが表示されません- それはどこにありますか? – Scott

+0

@Scott - 私は自分の答えを更新しました。 – dcp

+0

まだ見ない。それが特定のユーザーまたはユーザーグループに限定されているかどうか知っていますか? – Scott

関連する問題