2012-02-09 57 views
2

这种情况是我们正在将文件复制到我们的放置文件夹中,但我们也希望生成一个指向该构建定义的最新版本的“最新”符号链接。我在过去使用delete directory/copy命令创建了“Latest”文件夹,但我不想吃掉硬盘空间或增加潜在的构建执行时间。在TFS 2010中创建符号链接构建工作流程模板

有谁知道在TFS2010/Team Build 2010中构建期间创建符号链接的方法吗?问题完全在于,你必须已经作为管理员升级/执行以创建符号链接,并且从我所知道的情况来看,构建不会运行升级/作为管理员。我试过在本地管理员的用户帐户下运行生成服务,但它仍然无法工作。

我在下面列出了下面的事情我已经尝试过做得到这个工作,但他们都没有工作过:“CMD的

  • 使用的InvokeProcess工作流活动执行各种形式.exe/c mklink/d ...“直接使用
  • 使用InvokeProcess执行包含mklink命令的批处理脚本。
  • 尝试使用RUNAS [mklink命令](由于系统提示您手动输入密码而失败)。
  • 尝试在C#命令行实用程序上使用InvokeProcess活动我通过应用程序清单文件中的requiresAdmin选项编写了运行提升的代码。此实用程序不提示提升(UAC)AT ALL。

如果任何人有任何想法或已经这样做,我会非常感激任何提出的建议。

+1

UAC是否在打印机上打开或关闭?在内部,我们使用具有管理权限的帐户运行构建服务(因为我们需要),并且工作得很好。我认为关闭UAC可能可以解决问题。 – 2012-02-09 19:56:42

回答

0

Duat Le关闭UAC的建议解决了问题。

下面是需要做什么才能使其工作。

  1. 对于在构建服务器上运行构建服务的帐户,需要关闭UAC。
  2. 构建服务器正在运行的帐户需要是您试图设置符号链接的服务器上的本地管理员。
  3. UAC被关闭后,我在工作流中使用的InvokeProcess活性,给它下面的值:

    • 参数:
      "/c mklink /d ""<symlink name>"" ""<directory for symlink to point to>"""

    • 文件名:"cmd.exe"

    • WorkingDirectory:"<some dir>"

相关问题