我有一個單一的TFS溶液(外殼,COMON庫,兩個模塊和多個測試projets棱鏡應用程序。對於simplcity我選擇了一個DirectoryModuleCatalog,爲了以後本地運行的應用程序構建添加了一個後構建步驟來模塊項目建設複製構建dll到GUI應用程序輸出路徑的模塊子文件夾TFS2010解決方案PostBuild宏值在團隊不同建設
這適用於本地客戶端版本,但是當相同的postbuild事件觸發在檢查這是因爲本地相對路徑的$(OutDir)宏是在TFS構建代理MSBuild日誌中的絕對路徑!
引用MSDN
$(OutDir)
Path to the output file directory, relative to the project directory.
This resolves to the value for the Output Directory property.
It includes the trailing backslash '\'.
本地解析爲 「斌\調試\」 上生成代理其解析爲 「C:\構建\ 5 \ XXXX \ Gui.DEV_XXXX7_Iteration0.CI \二進制\」
鑑於這種本地原生構建定義;
mkdir "$(SolutionDir)Gui\$(OutDir)Modules\"
copy "$(TargetPath)" "$(SolutionDir)Gui\$(OutDir)Modules\"
你可以看到爲什麼失敗的生成代理這樣的:
mkdir "C:\Builds\4\XXXX\Gui.DEV_Cortex7_Iteration0.CI\Sources\Gui\C:\Builds\4 \XXXX\Gui.DEV_XXXX7_Iteration0.CI\Binaries\Modules\"
copy "C:\Builds\4\XXXX\Gui.DEV_XXXX7_Iteration0.CI\Binaries\Apdcomms.Cortex.Gui.Example2.Module.dll"
"C:\Builds\4\XXXX\Gui.DEV_XXXX7_Iteration0.CI\Sources\Gui\C:\Builds\4\XXXX\Gui.DEV_XXXX7_Iteration0.CI\Binaries\Modules\"
The filename, directory name, or volume label syntax is incorrect.
The filename, directory name, or volume label syntax is incorrect.
0 file(s) copied.
所以looing在宏的值這似乎在構建時,我需要一個不同的命令集在postbuild TFS以本地模式構建代理,這非常糟糕。
SO到問題:如何將解決方案中的一個項目的二進制輸出移動到同一解決方案中的另一個項目的子文件夾中,方式是在locla客戶端構建和TFS團隊構建?
所以你有2個項目(+更多的測試項目)。我假設一個項目有另一個參考。這個參考是如何製作的?您是使用項目引用還是指定文件路徑?另外,你使用的是什麼版本的TFS? – TimWagaman
1個文件,1個WPF shell項目,2個PRIMS模塊項目,這些項目沒有彼此的引用,但是必須將moule assbmlies dll複製到tee shell proejcts exe文件夾下的子文件夾中,以便在運行時「發現」 ;多數民衆贊成後構建命令試圖做。 –
TFS是2010 SP1 –