2011-03-30 49 views
2

經過特定的編譯後,我想運行一個具有TF.exe命令的批處理文件,它執行以下操作: 檢出DLL 將其中一個「新建的dll」檢查出DLL的頂部, 然後檢查它回來。從TFS 2010運行批處理文件build

我試着設置一個InvokeProcess構建活動來運行該批處理文件,但它嘗試執行該批處理文件時會收到權限錯誤。

我意識到我可以也可能應該使用PowerShell做到這一點,但是,我不想現在就簽下令人頭疼的問題。 有關正確執行此操作的任何建議?

+0

您正在獲取的權限錯誤是什麼? – Jehan33 2011-03-30 06:13:34

回答

3

可能要爲此答案獲取doink,但不應將構建的DLL檢入到源存儲庫中,因爲您無法對其進行版本化。沒有「三角洲」操作。

說了這麼多,我可以想到的一些方法至少可以讓你朝着你所看到的方向發展。一個PostBuild複製步驟是一個選項(注意:當你使用這種類型的選項時,所有用戶必須將DLL放在與你相同的相對位置上,但你已經咀嚼了該咬合的可能性)。

您必須通過另一個進程來處理簽出和簽入,但服務或PowerShell都可能是一個選項(儘管您不需要頭疼)。

已經有一段時間了,但使用某種類型的CI方法論可能是另一種探索方法。 MS現在在TFS中有CI,但還有其他選項,如Cruise Control .NET。

+0

您可以使用http://geekswithblogs.net/michelotti/archive/2010/05/15/version-assemblies-with-tfs-2010-continuous-integration.aspx版本程序集 – jonperl 2011-03-31 01:46:55

+0

不完全是我所關注的,儘管它在抓住正確版本的問題上是一個有趣的事情。我更關注這樣一個事實,即大多數將程序集加載到他們的TFS存儲庫的企業只是簡單地創造一個最新的地方。由於您沒有從源代碼那裏獲得編譯源代碼的增量,如果您所做的只是存儲最新代碼,那麼最終會浪費大量空間。 – 2011-04-05 19:33:00

+1

雖然二進制三角洲確實沒什麼用處,但有一種思想流派主張將源代碼管理中的所有東西都放在一起,這樣您就可以一站式購買與單個發佈版本相關的所有內容。這不是瘋狂的,不應該氣餒。 – 2012-11-06 15:19:43

3

我不明白你爲什麼不能簡單地從MSBuild執行批處理文件中的操作。例如,通過執行MSBuild Extension Pack中的TfsSource任務,可以檢出項目,並從TFS中檢出項目。