用于模块化 .net 应用程序的 Octopus Deploy 方法

Octopus Deploy approach for modular .net applications

我们有一个 .NET windows 服务,它没有任何直接的程序集引用,但会检查程序集的本地目录(通过 StructureMap)以将其他行为加载到系统中。

可以推送到本地目录的每个 模块 都作为私有 nuget 存储库中的 nuget 包存在。

在部署方面,有两种方法,我很想了解其他人是如何处理这个问题的,以及他们事后是否会推荐这种方法:

  1. 创建一个引用必要模块 nuget 包的入口点应用程序,然后为整个应用程序创建一个 nuget 包并使用 Octopus 部署它

  2. 利用Octopus的能力部署多个nuget包,并在部署阶段重构一切

非常感谢。

考虑到您的库在服务启动时加载一次,我可能会选择一个包含多个步骤的章鱼项目。 例如:

  1. 停止服务
  2. 清理库文件夹
  3. 部署库 1
  4. 部署库2
  5. .....
  6. .....
  7. 部署和运行服务

服务部署和安装是最后一步。 这样你就可以安全地 运行 部署中的所有 the steps 并且你的服务应该可以在 dll 部署到文件夹后工作。

还有一点要记住,部署到 new/clean 机器应该会导致完全设置服务(包含所有必需的库)。