我有一個用於TFS 2010(構建服務器)構建任務的解決方案。TFS 2010爲某些項目構建具有不同路徑的解決方案
大多數項目都可以在同一位置完成,唯一不同的是一些動態加載的插件,它應該位於相對於其他程序集的/ Plugins子文件夾中。
1)我已經嘗試了一些東西,比如修改我的DefaultTemplate.xaml,只是爲了找出那個(因爲我只指定了.sln文件),我無法區分每個項目級別的輸出路徑。 (在工作流中,有一個「For BuildSettings.ProjectsToBuild中的每個項目」都帶有一個serverBuildProjectItem變量 - 雖然只有.sln文件作爲我的項目,但這個變量只會被調用一次。)所以這不能用於區分每個項目基礎。
2)我想一件事是指定OutputPath的地方找到一個解決方案。
<OutputPath Condition=" '$(CommonOutputPath)'=='' ">../myOutDir/Plugins/</OutputPath>
<OutputPath Condition=" '$(CommonOutputPath)'!='' ">$(CommonOutputPath)Plugins\</OutputPath>
這會將所有程序集保留在服務器構建的同一文件夾中,因此不起作用。
3)我開始創建後生成事件,以手動將文件複製到正確的位置,但迄今未能區分服務器與本地情況。 (在這裏,這是行不通的。)
<PropertyGroup Condition=" ' $(TeamBuildConstants) ' == ' '>
<PostBuildEvent>mkdir $(SolutionDir)..\out\$(OutDir)plugins
copy $(TargetPath) $(SolutionDir)..\out\$(OutDir)plugins
</PropertyGroup>
<PropertyGroup Condition=" ' $(TeamBuildConstants) ' == '_TEAM_BUILD_ '>
echo figure out some copying for this once the condition gets hit..
<PostBuildEvent></PostBuildEvent>
</PropertyGroup>
我怎樣才能改變任何項目文件或配置構建流程有這個工作? (然後應該在本地以及服務器版本上工作。)
我想要什麼: 將所有標準程序集放在同一個文件夾中,所有插件項目都放在./Plugins/子文件夾中? (本地,相對於項目文件(默認值?),tfs-build相對於指定的放置位置)
謝謝,這對我來說伎倆。我指定了我現在想要在我的機器上構建的輸出路徑,並且在生成機器上構建了生成後事件。花費一些時間找出哪些變量具有什麼值。 – 2013-02-28 16:53:47
在你的情況下,將插件文件放在項目插件文件夾中可能更「乾淨」的aproach - 限制這是如果你需要它們出現在輸出的地方不是在項目中相同的路徑 - 例如,你不想要存儲在項目根目錄中,但需要位於應用程序的根目錄中。 – drk 2013-03-01 10:49:27