如何使用VSTS构建和发布我的Web应用程序到FTP服务器?

时间:2018-04-05 10:05:38

标签: msbuild azure-devops azure-pipelines msdeploy azure-pipelines-release-pipeline

通过VSTS我正在尝试自动执行当前手动执行的以下过程:

  1. 在VS 2017中执行发布到文件系统。
  2. 在web.config中设置设置。
  3. 重复1& 2,对于每个环境,例如测试,UAT,生产等
  4. 将这些文件复制到FTP服务器。
  5. 登录以保护基础架构,从FTP下载文件,并在IIS目标服务器上复制到位。
  6. 安全基础设施已被锁定,互联网访问受限。 FTP用作将文件移动到该基础结构中的一种方式。

    在这个问题中,我特别想要解决这些问题; 1,2和3。

    我正在努力的是,VSTS似乎已设置为将Web应用程序部署到Azure网站或可公开访问的IIS中。虽然IIS是我的最终目标,但最初我希望实现文件系统部署 - 类似于VS 2017提供的。

    我已尝试使用MSBuild创建一个包,使用; /p:WebPublishMethod=Package /p:PackageAsSingleFile=true

    然后MSDeploy将包解压缩到文件夹msdeploy.exe -verb:sync -source:package="Package.zip" -dest:contentPath="content"

    但是,这会导致以下错误Source (sitemanifest) and destination (contentPath) are not compatible for the given operation

    看起来我可以在构建时使用MSBuild和/p:DeployOnBuild=true /p:PublishProfile=VSTS部署到文件夹,但这在VSTS的结构中似乎有点尴尬。例如。我必须为每个环境重复构建解决方案。

    将解决方案部署到文件夹后,我打算使用VSTS推送到FTP。

    有更好的方法吗?例如; VSTS Azure部署提供了轻松设置连接sting参数的功能。

1 个答案:

答案 0 :(得分:0)

您可以使用FTP上传构建/发布任务实现您想要做的事情。

1 - 您不必发布到文件系统。 只需基于asp.net应用程序模板创建一个新的构建定义:

enter image description here

这将添加构建和打包所需的任务,并作为将工件发布到放置位置的最后一步。

enter image description here

将其发布到放置位置后,您可以通过添加ftp任务继续构建,也可以将ftp任务添加到发布管道。这取决于你。

然后需要在发布工件任务之后添加ftp上载任务,例如:

enter image description here

对于2和3,最好使用发布管道,您可以在其中添加多个环境和任务。您可以添加ftp任务并从将添加到发行版的工件(您的构建)中获取它。也可以使用发布任务更改web.config设置。