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

Eri*_*sch 16 deployment asp.net-mvc tfsbuild tfs-2015

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

文件系统副本和powershell脚本有两个部署选项,使用它们将文件复制到新服务器当然很容易,但由于构建只构建二进制文件,我没有看到一个工具为此收集Web工件(cshtml,图像,脚本,css等).

经过详尽的谷歌搜索,我只发现了一篇文章,其中涉及到:

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

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

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

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

Seb*_*ens 15

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

/p:DeployOnBuild=True /p:PublishProfile=$(DeploymentConfiguration)
Run Code Online (Sandbox Code Playgroud)

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

例如:

/p:DeployOnBuild=True /p:PublishProfile=Build
Run Code Online (Sandbox Code Playgroud)

  • @Sabastian-谢谢.那么我的问题是,如果以下Visual Studio Test构建步骤中的内容失败,如何防止此部署? (3认同)

Rea*_*ilt 7

我想补充一点,Ben Day有一个很好的写作,帮助我们快速打包,然后通过Release Manager发布到多个环境.

他的msbuild参数看起来像这样:

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

这个和被接受的答案之间的区别在于,此参数集将工件文件夹中的所有内容进行分段,然后将其保存为构建的一部分.然后我们可以重复部署完全相同的代码.

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