我想實現連續構建過程,如果我看XAML序列Drop文件夾中我想指定自定義模板TFS連續型創建自定義的Drop文件夾模板
這是我不希望所有的文件被放入一個文件夾中, 我必須在根文件夾內創建一個像Folder1,Folder2這樣的文件夾結構。
基於文件擴展名的文件都將被丟棄特定foldder
任何一點如何實現這一目標,
我想實現連續構建過程,如果我看XAML序列Drop文件夾中我想指定自定義模板TFS連續型創建自定義的Drop文件夾模板
這是我不希望所有的文件被放入一個文件夾中, 我必須在根文件夾內創建一個像Folder1,Folder2這樣的文件夾結構。
基於文件擴展名的文件都將被丟棄特定foldder
任何一點如何實現這一目標,
如果您使用的是默認的構建過程模板(或衍生物)複製到DropFolder的操作位於Finally
區塊Try Compile, Test and Associate Changesets and Work Items
之內。您將不得不用您的自定義序列替換該單一的Copy to Drop Location
動作。 FindMatchingFiles
可用於根據搜索條件選擇一組文件。
嘗試複製單個項目時會出現一個問題; TFS構建活動沒有爲此採取行動;僅適用於CopyDirectory
。您可以設置InvokeProcess
,或者從012xx和Powershell
動作中添加Community TFS Build Extensions
以支持此類任務。
如果您使用的是基本的DefaultTemplate,我強烈建議您對其副本進行更改並將其用於您的構建。
如果你很高興修改TFS構建模板,那麼Torbjörn的答案肯定是要走的路。定製構建模板將使您完全控制輸出。然而,這可能是矯枉過正的,特別是如果你不熟悉WF和Team Build的內幕。另一種方法是編寫一些將作爲構建部分運行的msbuild。
爲此創建一個名爲「DropTidy.proj」文件並編輯文件,以便它看起來要像這樣
<Project DefaultTargets="CopySQLReleaseFiles" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<Target Name="CopySQLReleaseFiles">
<ItemGroup>
<SqlBuildOutput Include="$(OutDir)\*.sql" />
</ItemGroup>
<Copy SourceFiles="@(SqlBuildOutput)" DestinationFolder="$(OutDir)\SQL" />
</Target>
</Project>
上面的例子將所有文件複製以「SQL」的擴展一個名爲「SQL」的文件夾。 $(OutDir)是團隊構建使用的工作文件夾,它與構建代理上的構建工作區中的「Binaries」文件夾相關聯
將文件檢入TFS,然後將其添加到「要構建的項目」列表中在團隊建設定義。確保它是列表中的最後一個「解決方案」,以便它在構建中的其他解決方案之後運行。還要確保你檢查了proj文件的文件夾是你的構建工作區的一部分。
運行你的構建,你應該在你的放置位置看到一個名爲SQL的新文件夾。
謝謝,但我的應用程序是DotnetNuke,我有很多文件夾像App_LocalResources,DesktopModules,像DotnetNuke \ DesktopModules \ Module1,module2,每個文件都應該複製到特定位置,我必須創建包含所有文件夾的DotNetNuke文件夾這個文件,在Xaml下降foler事件我可以創建一個代碼活動,我不知道如何創建這個,你能指點我一些引用 – user804401
謝謝詹姆斯,這工作像一個魅力。 – ChuckT