2012-02-09 100 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>"

相關問題