2

我的問題與2017年TFS Web應用程序與此類似構建和部署使用Web部署包

Build and Deploy a Web Application with TFS 2015 Build

但是,該解決方案不是爲我工作。我正在致力於持續集成,並且我必須部署Web應用程序和其他網站,並且在創建用於部署的.zip Package網站時我沒有問題。我正在使用/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(Build.StagingDirectory)\\"

然後我使用部署IIS應用程序來提取網站的虛擬目錄中的.zip包。

enter image description here

但隨着Web應用程序,無論我在MSBuild的參數沒有什麼作品使用什麼樣的參數,而我不希望從項目到服務器上覆制所有的文件,我想一個選項與從服務器發佈後刪除.sln和其他文件不同。

我試過/p:DeployOnBuild=True /p:PublishProfile=$(DeploymentConfiguration),我使用了一個作爲Web Deploy Package創建的發佈配置文件,但在構建工件後生成了相同的文件,我的意思是所有項目文件包括.sln。

我不確定我在使用/p:DeployOnBuild=True /p:PublishProfile=$(DeploymentConfiguration)時應該期待什麼樣的工件,但我沒有看到變化。

有人可以解釋我在這種情況下應該等待什麼?以及如何使用TFS正確部署Web應用程序項目(因爲當我使用.pubxml從Visual Studio發佈工作正常時,在服務器中只是正在複製版權文件),並且構思是使構建和發佈TFS沒有使用Visal Studio的任何手冊。

任何想法和解釋將受到歡迎,謝謝。

+0

在'/ p:PublishProfile =配置文件名稱'旁邊工作良好,請確保您使用正確的配置文件名稱。 –

+1

您可以在構建定義中共享整個構建日誌和設置嗎? –

回答

3

什麼都沒有工作,直到我一直在尋找成構建的TFS選項定義以及何時必須爲定義選擇一個模板,可以看到兩個選項構建和部署,我選擇了Build的模板,但我嘗試了一個部署選項: enter image description here

,默認情況下在的MSBuild變量的參數爲:/p:OutDir="$(build.binariesdirectory)\\" enter image description here

在該文件夾,我們有我們需要的一切部署。

1

要將參數傳遞到MSBuild,您需要在項目屬性文件夾下的PublishProfiles文件夾中有一個.pubxml文件(稱爲發佈配置文件)。這就是使用/p:DeployOnBuild=true;PublishProfile=MyProfile作爲msbuild參數的原因。更多詳細信息,請參閱賽義德·易卜拉欣·哈希米這樣一個問題:How do I configure MSBuild to use a saved publishProfile for WebDeploy?

如果你想生成工件,請確保您還可以使用Publish Build Artifacts構建步驟。複製構建的工件併發布構件以刪除服務器上的位置。這將是稍後選擇版本的構建工件的位置。這些文件將定位在分期folder-- Build.StagingDirectoryagent/_work/2/a

enter image description here

瞭解更多詳細看看這個話題Visual Studio Team Services Release Management IIS Web Deployment vnext