我想,我得到了这个覆盖。但是,我无法独立部署没有错误的 Windows 服务,而只能作为 Web 应用程序的一部分。不过,在我的场景中这不是一个真正的问题。
对于这种情况,我有两个项目;Web 应用程序和 Windows 服务应用程序。
- 在构建服务器上,我创建了一个 Windows 服务可执行文件的 ZIP 文件(使用
zip.exe
)
- 在构建服务器上,我将 ZIP 文件上传到 S3 存储桶(使用
s3.exe
)
- 在web 应用程序的项目中,我创建了一个
.ebextensions
目录
- 在
.ebextensions
目录中,我有一个whatever.config
文件
- 从 S3 获取 ZIP 文件并将其解压缩到我首选目录中的 C-Drive
InstallUtil.exe
调用一个批处理文件(ZIP 文件的一部分),使用实用程序(.Net 框架的一部分)卸载并重新安装 Windows 服务
- 在我的夜间构建(完整解决方案)中,我使用
awsdeploy.exe
.
- 因此,我指向我的Web 应用程序目录中的一个
configuration.txt
文件。builds
- 您可以使用 Visual Studio 中的手动 Elastic Beanstalk 部署生成此类构建文件;但一段时间后它们很容易。
现在发生的情况是,在我的 Nightly Builds 中,Web 应用程序被部署到 Elastic Beanstalk 环境中;部署将识别出存在配置,并将执行上面第 4 步中提到的步骤。由于 Nightly Build 在此之前创建并上传了 Windows 服务的 ZIP 文件,我确信我会安装最新的 Windows 服务。
我现在唯一的问题是,由于臭名昭著的标记为删除错误,Windows 服务并不总是自行安装。但那是另一回事了。
我希望这对某人有所帮助。如果有人有简化这一点的建议,欢迎他添加评论。