0

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

4

2 に答える 2

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

代替テキスト

于 2010-12-29T14:04:38.500 に答える
0

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

バッチファイルで呼び出されるMSDeployスクリプトは次のとおりです。

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
于 2011-02-11T18:07:07.333 に答える