我目前正在使用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个名为Development
,Staging
和Production
的环境。
所有这些都使用Host代理,但我认为我需要调整它,因为如果我理解它,我现在可以将我的VPS分配到我的Production
环境中吗?
是否有人使用Visual Studio Team Services和在Windows Server 2012上运行的VPS完成此操作?
是否有关于此的视频或文档可用,因为在部署Web项目版本时正确的步骤令人困惑。
答案 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任务来使用此方法发布文件。
有关详情,请参阅Build和Release Management了解详情。