2016-06-28 71 views
0

我目前使用Visual Studio Team Services (was VS Online)来版本控制我的项目。当我想将我的项目部署到我的VPS时,我使用Visual Studio发布将文件存储在我的硬盘上,然后使用FTP客户端将文件发送到我的VPS。使用Visual Studio Team Services构建和发布ASP.NET网站到VPS Windows Server 2012 R2

但现在我正在查看Visual Studio Team Services中的构建和发布函数。但我不完全明白这一切。

问题:

  • 什么是构建的目的是什么?

我创建使用Visual Studio模板的新标准构建定义和使用的Host代理池。

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

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

  • 该版本的目的是什么?

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

然后我添加了3个环境,分别叫做Development,StagingProduction

所有人都使用Host代理,但我认为在这里我需要调整这一点,因为如果我明白了,我现在可以将我的VPS分配给我的Production环境吗?

有人已经使用Visual Studio Team Services和一个在Windows Server 2012上运行的VPS来完成此操作吗?

是否有关于此的视频或文档可用,因为它很难理解部署Web项目版本的正确步骤。

回答

0

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

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

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

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

欲了解更多信息,请参阅BuildRelease Management了解详情。

+0

感谢这个英特尔。你说我可以使用“Publish Artifact”将构建放到服务器或文件共享中。但是,如果我使用内置的Host代理,如何访问位于变量build.artifactstaging目录下的输出目录中的文件? – Mivaweb

+0

好吧,我发现下载包含构建定义下的所有文件,然后工件的下拉选项。 – Mivaweb

+0

所以这个版本创建了一个我现在可以正确释放的drop zip包?然后在我的Production环境中的发布模式下,我可以在我的VPS上安装此软件包。但是我需要哪些任务以及在哪里设置VPS设置,以便Host代理可以访问我的VPS? – Mivaweb

相关问题