使用MSDeploy将可执行文件复制到服务器,然后运行它

Mur*_*rph 9 .net msdeploy

我已经让MSDeploy/WebDeploy更新了我的Web应用程序 - 这解决了我迄今为止设置的内容中约90%的部署问题.

此外,我想要做的是将可执行文件(实际上是文件夹的内容)复制到服务器,然后运行该可执行文件(执行模式更新).

我可以看到这应该是可能的,但我正在努力将各个部分放在一起(这显然是一个边缘情况).

特别:

  • 我宁愿不将可执行文件(文件夹)复制到web目录中.
  • 我需要考虑运行可执行文件的结果(对于返回失败状态非常有用,但是如果重要的话,这将通过部署后测试引发)

因此,什么具体的命令以什么顺序 - 如果我能找到一个模式我可以使它工作,但我正在努力找出一个模式


笔记:

我确实可以将文件夹复制到web目录,运行代码然后再次删除文件夹,但我对此感到不舒服,无论如何最好在部署后在服务器上提供代码.

还值得注意的是,我对我维护数据库模式的方式非常满意,因此可执行文件正在执行的操作是附带的问题

tim*_*amm 12

Web Deploy实际上提供了很多选项.您选择哪种选项取决于您希望将多少内容放入一个命令中.

要将文件文件夹放到目标位置,可以使用Web Deploy的dirPath 提供程序将复制到您选择的位置.要复制单个文件,可以使用filePath提供程序.如果您的复制源包含许多小文件,那么Web Deploy实际上比网络上的RoboCopy更高效(请参阅我的博客文章Web Deploy vs. Robocopy).

要运行复制到目标服务器的命令文件,可以使用runCommand提供程序.(这是一个重要的,我肯定会读到它.)

请注意,此时我们讨论的是至少两个单独的Web Deploy命令,不包括任何"常规"Web部署操作,如部署网站或Web服务器.

但是,如果您的目标是在一个Web部署操作中实现所有内容,则可以使用清单提供程序.创建一个自定义清单文件,该文件指定将依次执行的一系列Web Deploy提供程序操作.然后,在Web Deploy命令中,将清单提供程序指向自定义清单文件.有关此方法的详细信息,请参阅创建和同步自定义清单.

如果确实使用了清单提供程序,则可以在清单文件中指定dirPath提供程序以复制一个或多个文件,然后在后续行中指定runCommand提供程序以实际运行您复制的可执行文件.

最后,使用清单文件一步的方法是使用preSync和/或postSync命令行开关在实际Web部署操作发生之前或之后在目标服务器上运行命令.您可以在" Web部署操作设置"页面上找到有关preSyncpostSync的更多信息.

引用的所有页面都有语法示例,因此应该有所帮助.