通过MSDeploy.exe进行Web部署

19

我正在使用Jenkins配置一个CI构建服务器。完成构建步骤后,我想部署网站。

在使用VisualStudio发布网站时,我使用Web Deploy进行发布。我喜欢这种方法,因为它只会发布已更改的文件,所以部署非常快速。

现在在构建服务器上,我尝试做同样的事情:构建应用程序(使用MSBuild.exe),然后部署应用程序(使用MSDeploy.exe?)。

我看到了一些帖子,在其中一些帖子中,他们使用MSBuild.exe来部署应用程序,而其他人则使用MSDeploy.exe,这两种方法之间有显着的区别吗?

您有什么建议可以帮助解决这个问题吗?

提前致谢。

2个回答

19
使用MSBuild创建MSDeploy包,然后使用MSDeploy.exe将该包部署到任何环境中。此链接应帮助您更好地了解WebDeploy / MSDeploy的工作原理。

http://dotnetcatch.com/2016/02/25/the-anatomy-of-a-webdeploy-package/

真正酷的是,你还可以使用MSDeploy来部署数据库和非Web应用程序。我们已经完全自动化了使用此方法部署50多个产品。

http://dotnetcatch.com/2016/02/10/deploying-a-database-project-with-msdeploy/

http://dotnetcatch.com/2016/03/18/deploy-non-web-apps-with-msdeploy/

更新 - 使用MSDeploy包的基本步骤:

  1. 通过在MSBuild调用中添加/t:Package参数,在构建中创建一个包
  2. 将生成的包从bin目录存储到您的工件库中
  3. 调用MSDeploy.exe将包部署到目标服务器。 这里有很多选项,但基本命令如下:

    "c:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:package=mypackage.zip -dest:auto,computerName=localhost


2
你能否总结一下链接中的信息,以便你的回答可以独立完整? - Ryan Gates
2
添加了更多的细节。 - chief7

1

通过这种方式提供密码,同时在我们的.pubxml中添加一个AllowUntrustedCertificate标记(如此SO答案中所示),是我们成功的原因,因为我们的证书未通过吊销检查。 - Ben Seymour

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接