使用Visual Studio Team Services构建ASP.NET网站并将其发布到VPS Windows Server 2012 R2

时间:2016-06-28 07:37:25

标签: asp.net tfs azure-devops

我目前正在使用Visual Studio Team Services (was VS Online)版本控制我的项目。当我想将项目部署到我的VPS时,我使用Visual Studio Publish将文件存储在我的硬盘上,然后使用FTP客户端将文件发送到我的VPS。

但现在我正在查看Visual Studio Team Services中的构建和发布功能。但我并不完全理解这一切。

问题:

  • 构建的目的是什么?

我使用Visual Studio模板创建了一个新的标准构建定义,并使用了Host代理池。

当我运行构建时,我可以看到它使用最后一次提交作为参考创建了一个新版本。但它在后端代理上做了什么呢?

这个新创建的构建存储的文件在哪里?在日志中,我看到Copy Files to: $(build.artifactstagingdirectory)但这是什么?

  • 发布的目的是什么?

我使用空模板创建了一个新的发布计划,因为我没有Azure,我使用另一家运行VPS的公司。

然后我添加了3个名为DevelopmentStagingProduction的环境。

所有这些都使用Host代理,但我认为我需要调整它,因为如果我理解它,我现在可以将我的VPS分配到我的Production环境中吗?

是否有人使用Visual Studio Team Services和在Windows Server 2012上运行的VPS完成此操作?

是否有关于此的视频或文档可用,因为在部署Web项目版本时正确的步骤令人困惑。

1 个答案:

答案 0 :(得分:0)

通常,“Build”专注于集成和构建代码更改并运行一些基本的单元测试。 “Release”用于将“Build”的输出部署到您的环境中,以便您可以运行一些未来的测试/验证,并最终将输出部署到生产环境供客户使用。请参阅此链接以供参考:What is the difference between build and release engineering, DevOps and site reliability engineering?

当您在未指定任何源版本的情况下启动构建时,它将获取最新版本的代码,然后构建代码。在构建过程中,所有文件都放在构建代理的工作文件夹中。 $(build.artifactstagingdirectory)是一个预定义变量,指向构建代理工作文件夹中的路径。我们通常将构建输出复制到此路径,以便我们可以在以下任务中轻松访问输出。例如,使用“发布工件”任务将$(build.artifactstagingdirectory)文件夹中的输出文件发布到服务器或文件共享,然后团队成员可以从服务器或文件共享中获取此构建。

在发行版中,您可以将发布链接到构建定义。发布时,它将获取构建的最新工件并部署到您的环境中。

代理是用于在构建/发布定义中执行任务的机器。 Hosted agent由Azure管理,您也可以deploy your own build agent。因此,如果托管代理可以访问您的VPS,则无需更改“生产”环境的代理设置。由于您以前使用FTP将文件上传到VPS,因此您仍然可以通过在发布定义中添加FTP Uploader任务来使用此方法发布文件。

有关详情,请参阅BuildRelease Management了解详情。