我移植構建以CC.Net的新版本(1.4.4從一個非常最新版本爲1.6)。以前的版本混合<msbuild />
標籤與<exec />
標籤調用其中的tf.exe
命令的批處理文件。
構建必須依賴於源代碼控制版本作爲msbuild
和tf.exe
命令之間是相同的,因爲現在我上tf.exe
命令是錯誤的:
無法確定工作區。
當我啓動命令提示符時,服務正在使用同一用戶的runas,並調用相同命令(使用同一目錄)使用的批處理文件,我得到同樣的錯誤。
但是,如果我啓動一個Visual Studio 2010命令提示符和runas,並調用該命令(來自同一目錄),我不會收到錯誤。
這也有道理,因爲%UserProfile%\Local Settings\Application Data\Microsoft\Team Foundation\3.0\Cache\VersionControl.config
文件有工作區映射,但...\1.0\Cache\VersionControl.config
文件沒有。
我想試試
我不能簡單地改變PATH
批處理文件,因爲它實際上是需要建立針對較舊版本的Visual Studio,由於授權的解決方案。
我想我可以通過指定與<msbuild />
標記一起使用的TFS/msbuild版本來解決此問題。但我不知道如何去做這件事。我認爲這應該是某種服務器配置,但在文檔中我沒有發現任何關於此的信息。
我的問題是:如何指定Cruise Control用於<msbuild />
標記的TFS版本?還是有另一種方法來解決這個問題?
'vcvars'解決方案聽起來很有希望。它適用於任何類型的任務。您是否有方便的方式獲取現有文件的路徑,或者您是否通過手動過程將文件複製到工作文件夾? –
找到了我可以找到vcvars批處理文件:'「$(Vs80ComnTools)\ .. \ .. \ VC \ vcvarsall.bat」'。 'executable'元素也非常有用,可以在'sourcecontrol'元素中使用。 –