TFS 构建和 Powershell Post-构建脚本

TFS Build and Powershell Post-Build Script

我需要在我不控制代理或任何放置位置的地方运行 TFS 构建过程。

我有一个显示的 post-build 脚本 Here...但我不知道如何编辑它以使其在多个项目目录中保留文件夹结构。

我知道我需要自己编辑文件副本,但我不确定如何在 powershell 中执行此操作...

foreach ($file in $files) 
{
    #Do something here to create the correct path on the drop server
    Copy $file $Env:TF_BUILD_BINARIESDIRECTORY
}

最终目标是,我不是将所有构建 dll 都放在一个目录中,而是将它们组织在每个项目的文件夹中。

以下是实现您想要的功能的简单脚本,您可以根据您的文件夹结构和要求对其进行更新。

Get-ChildItem -Path $Env:TF_BUILD_BUILDDIRECTORY -Filter *.*proj -Recurse | ForEach-Object {
$projectfolder = $_.BaseName
$currentpath = $_.Directory.ToString()
$copypath = $currentpath + '\obj'
$targetpath = $Env:TF_BUILD_BINARIESDIRECTORY + '\' + $projectfolder
Write-Host "Copying files from $copypath to $targetpath"
Copy-Item $copypath $targetpath -Recurse
}