2011-10-25 41 views
4

我一直在尋找年齡,我很激怒,因爲我想做的事情理論上非常簡單!讓TFS 2010 Build服務器發佈到相同的文件夾並覆蓋

我有一個web項目,當我告訴我的TFS排隊一個新的構建時,我希望我發佈的文件(或未發佈的文件 - 我不在乎)最終在一個靜態文件夾,如「C: \的Inetpub \的Myproj \ webfiles」。

我看看這個帖子TFS 2010 Build Publish via file system這導致我這個職位Team Build: Publish locally using MSDeploy,但我只是不明白,它似乎並沒有工作。

我有我的構建定義所有設置和它成功構建,甚至會建立到我指定的文件夾中,但一旦它建立它最終在一個子文件夾棚的負載 - 其中之一有一個版本號附加意義沒有一些重新配置,IIS不會自動選擇我的最新版本。 (我沒有刪除的版本綁定,但隨後它不會覆蓋與最新版本的最後一個版本)

我目前正在與這些參數的MSBuild亂搞,試圖得到它的工作:

/p:DeployOnBuild=true; 
DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder; 
_PackageTempDir="\\HomeServer\inetpub\SiteTest"; 
AutoParameterizationWebConfigConnectionStrings=false 

但是有幾個要點:

  • ,從未創建的「SiteTest」文件夾和
  • 它正在通過共享位置訪問時,它的意思是瀚士威的本地文件系統我要發佈了。

我只需要自動將我的網絡文件放入我可以預先確定的IIS文件夾中,請幫忙!

+0

你會做的更好,以停止戰鬥,它,而是問你要完成什麼樣一個單獨的問題。 –

+0

您是否找到答案? –

+0

我從來沒有這樣做,有一種方法來實現它,但我現在租一個TFS服務器,沒有生成服務器無論如何:(對不起:) – Smithy

回答

1

我通過定製我們的構建過程模板來實現這一點。複製DefaultTemplate.xaml(例如DefaultTemplateV2.xaml)並將其打開。

如果您是新手工作的工作流xaml編輯器,我發現它有助於首先全部摺疊。

打開後,單擊根序列並單擊參數。添加三個參數:

  1. DeployBuild(布爾)默認爲False
  2. FromPath(字符串)
  3. 安裝路徑(字符串)

然後,在您的工作流程中打開這些部分:

  • 在代理上運行
  • 嘗試編譯,測試和...
  • 下試一下打開序列

在序列後獲得受影響測試的底部。在一個「如果」工作流程項,打開工具箱和拖動。將條件設置爲DeployBuild。

如果在CopyDirectory工作流項中拖動,則在Then部分。目標到安裝路徑和源設置爲

String.Format("{0}\{1}", BinariesDirectory, FromPath). 

保存,並檢查它。你需要打開一個以前的版本,並注意要部署構建子文件夾。這將是像_PublishedWebsites \ mywebsite \

編輯您的構建定義(您可能必須關閉並重新打開第一VS)並轉到進程選項卡。將生成過程模板更改爲新版本。

設置FromPath您剛纔提到的路徑。設置安裝路徑到目標文件夾的UNC路徑(你需要確保任何服務帳戶的建立運行在有權訪問路徑),並設置DeployBuild爲True。

保存,排隊構建和測試部署。

您也可以在您的工作流程XAML,去爭論和編輯您的每一個新的論據元數據參數。您可以設置可以查看的位置。例如,您可以將FromPath和InstallPath設置爲僅在編輯定義時查看,但在排隊構建時可看到DeployBuild。這樣,您可以在排隊時打開或關閉它。

祝你好運。

+1

謝謝保羅,這是一個值得期待的迴應 - 但我們不再有一個建立服務器>。<我要標記你的答案,因爲你似乎已經制定了定製構建輸出的步驟,並進行了大量的研究。 – Smithy

相關問題