2016-09-02 91 views
1

我正在爲構建和部署設置TFS 2015。但我開始注意到,在TFS中發佈的文件與我在Visual Studio中右鍵單擊並公開該項目時發佈的文件看起來不像是相同的文件(即在VS中,我的出版物不適用包含.cs文件等)。TFS構建定義 - 僅部署運行此應用程序所需的文件

在TFS我生成步驟:

  • Visual Studio中建立 enter image description here

  • 複製文件(到構建文件複製到一個臨時目錄) enter image description here

  • 發佈編譯文物(去文件共享位置,我將然後部署) enter image description here

我非常希望在構建步驟(Deploy下)列表中看到Web-Deploy/MSDeploy。

有沒有人遇到過這個,並想出了發生了什麼?請讓我知道你是否需要關於我當前配置的更多細節。

感謝

**** ****編輯

好吧,我一直在學習了很多關於我所期望看到的,它看起來像我需要我的生成要經過預編譯。從我讀過的項目中我目前正在研究的是WAP,因此作爲每個出版物的一部分進行了預編譯。這將代碼(.cs文件)移動到各自的DLL中。

因此,我已經開始考慮應用批處理腳本來啓動ASP.NET aspnet_compiler.exe來執行預編譯的路線 - 但我收到了有關web.config的各種錯誤。

這對於TFS Build ..而言可能會很簡單的事情已經開始變得非常痛苦了。這是微軟的後遺症!

+0

您可以在問題中添加詳細構建步驟'複製文件'和'發佈構建文物'? –

+0

嗨帕特里克 - 我已經添加了我上面設置的每個任務的屏幕截圖。在進一步的調查結束後,我還在****編輯****下添加了更多信息。我很驚訝,在TFS發佈管理中複製'右鍵單擊>發佈'功能似乎非常困難...?!所以我覺得我必須錯過一些非常基本的東西?! – CJH

回答

0

在vNext構建中,使用「複製文件」和「發佈構建工件」步驟來發布構建工件。嘗試在代理中使用本地路徑,其中任何工件在被推送到其目的地之前被複制到該代理。例如:

  1. 添加/號碼:DeployOnBuild =真 /P:OUTDIR = 「$(build.artifactstagingdirectory)\」 在Visual Studio中 參數生成步驟;
  2. 更改 「路徑發佈」 的Publish Build Artifacts任務到 $(build.artifactstagingdirectory)\_PublishedWebsites\ProjectName
+1

我剛剛嘗試過您的示例並正在構建失敗...我猜測這是因爲我在解決方案級別而不是項目級別構建(我已經添加了關於我如何設置事物的原始問題的截圖)。 – CJH

+0

你需要在你的msbuild參數中添加'/ p:DeployOnBuild = true/p:OutDir =「$(build.artifactstagingdirectory)\\」',而不需要複製任務。由於這將直接發佈您的構建工件。詳細請認真檢查構建步驟的截圖與埃迪在這個答案的答案:http://stackoverflow.com/questions/38979398/how-do-i-get-the-the-expected-output-from-a-tfs -2015建造配搭-MY-XAML的裴/ 39011460#39011460。 –

+1

非常感謝帕特里克!到底有多容易......!我很高興我不需要開始搞亂aspnet_compiler。 – CJH

相關問題