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

时间:2018-08-01 19:19:36

标签: tfs tfsbuild unc

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

  • 我试图通过在TFS 2015中添加“复制文件”构建任务来复制源文件夹。
  • Source Folder部分中,我添加了要复制的文件夹。
  • Contents部分中,我将其保留为**,以获取Source Folder中的每个文件
  • Target Folder中,我可以浏览的地址放在文件浏览器中:\\*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路径,因此我知道我能够复制文件,但是我不确定是否引用了正确共享文件夹。

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

1 个答案:

答案 0 :(得分:1)

Tested and 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