将源目录复制到 TFS 构建中的共享网络文件夹

Copying Source Directory to a shared network folder within a TFS Build

我正在尝试将 TFS 集合中我的源文件夹中的所有文件复制到我设置的 VM 中。 VM 有一个共享文件夹,我可以通过键入 \*IPAddress*\share(其中 IPAddress 是 VM 的 IP)在文件资源管理器中访问。

当我对构建进行排队并 运行 它时,我收到以下错误:

Unable to create directory '\*IPAddress*\share'. Unable to verify the directory exists: '\*IPAddress*\share'. If directory is a file share, please verify the share name is correct, the share is online, and the current process has permission to access the share.

当我将鼠标悬停在目标文件夹旁边的小 "I" 上时,它表明它可以是 UNC 路径,所以我知道我可以复制文件,但我不确定是否可以我正在正确引用共享文件夹。

我该如何引用它?也可能出现问题的一件事是,当我从文件资源管理器导航到共享时,我必须输入凭据才能访问共享文件夹,因此它可能因此没有访问共享的权限。

测试和 Windows Machine File Copy 任务对我有用,提供访问共享路径的凭据。

对于Copy Files任务,您可以尝试为构建代理服务帐户授予读取写入权限(您在部署代理期间指定的),然后重试。

此外,您还可以创建一个脚本来复制文件,然后将命令行或 PowerShell 任务添加到 运行 脚本中。

例如,您可以使用下面的 PowerShell 脚本复制源文件,并提供特定的用户名和密码:

$Source = $env:BUILD_SOURCESDIRECTORY
$Dest   = "\172.17.16.115\CopyTest"
$Username = "domain\username"
$Password = ConvertTo-SecureString "PasswordHere" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential($Username, $Password)
New-PSDrive -Name J -PSProvider FileSystem -Root $Dest -Credential $mycreds -Persist
Copy-Item -Path $Source -Recurse -Force -Destination $Dest