使用 TFS 2015 Build 构建和部署 Web 应用程序

Build and Deploy a Web Application with TFS 2015 Build

我们刚刚在本地安装了 TFS 2015(更新 1),并正在尝试使用新的 TFS 构建系统创建连续 Integration/Build 系统。构建工作正常,并给了我一个绿灯,但是当我查看默认构建时,它只从 bin 目录构建了二进制文件,而且似乎没有简单的方法将应用程序本地部署到本地服务器.

文件系统副本和 powershell 脚本有两个部署选项,使用它们将文件复制到新服务器肯定很容易,但由于构建只构建了二进制文件,我不知道找不到为此收集 Web 工件(cshtml、图像、脚本、css 等)的工具。

经过详尽的 google 搜索,我只在以下位置找到一篇讨论此问题的文章:

http://www.deliveron.com/blog/building-websites-team-foundation-build-2015/

但是,这使用了 WebDeploy 并创建了一个相当混乱的部署包。

如何以最简单的方式将带有工件的站点(标准 MVC Web 应用程序,实际上我的测试使用的是创建项目向导创建的默认样板站点)部署到本地服务器?我不想在服务器上安装 WebDeploy,而宁愿使用 PowerShell 或其他东西来部署最终的工件。

构建只是标准的 Visual Studio 构建模板,包含 4 个步骤(构建、测试、索引和发布、发布构建工件)。

我们将 WebDeploy/MSDeploy 用于 40 多个应用程序并喜欢它。我们确实在所有服务器上安装了 WebDeploy,因此我们可以更轻松地进行部署,但您也可以使用 Web Deploy On Demand 功能,它不需要预安装 WebDeploy。

我们使用 "Visual Studio Build" 步骤,作为 MSBuild 的参数,我们使用以下行:

/p:DeployOnBuild=True /p:PublishProfile=$(DeploymentConfiguration)

必须在“变量”选项卡页面上配置 DeploymentConfiguration。它必须是发布配置文件的名称(pubxml 文件的文件名)。如果文件名是 Build.pubxml 发布配置文件是 Build.

例如:

/p:DeployOnBuild=True /p:PublishProfile=Build

I wanted to add that Ben Day has an excellent write-up that helped us package quickly and then release to multiple environments through Release Manager.

他的 msbuild 参数如下所示:

/p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl=$(build.artifactstagingdirectory)\for-deploy\website

此答案与已接受的答案之间的区别在于,此参数集将所有内容暂存到工件文件夹中,然后将其保存为构建的一部分。然后我们可以重复部署完全相同的代码。

我们将 web.env.config 文件与 for-deploy 文件夹一起捕获,然后在发布过程中使用 xdt 转换以确保所有内容都针对我们部署到的任何环境进行更新。它适用于我们所有的网络项目。