用于模块化 .net 应用程序的 Octopus Deploy 方法
Octopus Deploy approach for modular .net applications
我们有一个 .NET windows 服务,它没有任何直接的程序集引用,但会检查程序集的本地目录(通过 StructureMap)以将其他行为加载到系统中。
可以推送到本地目录的每个 模块 都作为私有 nuget 存储库中的 nuget 包存在。
在部署方面,有两种方法,我很想了解其他人是如何处理这个问题的,以及他们事后是否会推荐这种方法:
创建一个引用必要模块 nuget 包的入口点应用程序,然后为整个应用程序创建一个 nuget 包并使用 Octopus 部署它
利用Octopus的能力部署多个nuget包,并在部署阶段重构一切
非常感谢。
考虑到您的库在服务启动时加载一次,我可能会选择一个包含多个步骤的章鱼项目。
例如:
- 停止服务
- 清理库文件夹
- 部署库 1
- 部署库2
- .....
- .....
- 部署和运行服务
服务部署和安装是最后一步。
这样你就可以安全地 运行 部署中的所有 the steps 并且你的服务应该可以在 dll 部署到文件夹后工作。
还有一点要记住,部署到 new/clean 机器应该会导致完全设置服务(包含所有必需的库)。
我们有一个 .NET windows 服务,它没有任何直接的程序集引用,但会检查程序集的本地目录(通过 StructureMap)以将其他行为加载到系统中。
可以推送到本地目录的每个 模块 都作为私有 nuget 存储库中的 nuget 包存在。
在部署方面,有两种方法,我很想了解其他人是如何处理这个问题的,以及他们事后是否会推荐这种方法:
创建一个引用必要模块 nuget 包的入口点应用程序,然后为整个应用程序创建一个 nuget 包并使用 Octopus 部署它
利用Octopus的能力部署多个nuget包,并在部署阶段重构一切
非常感谢。
考虑到您的库在服务启动时加载一次,我可能会选择一个包含多个步骤的章鱼项目。 例如:
- 停止服务
- 清理库文件夹
- 部署库 1
- 部署库2
- .....
- .....
- 部署和运行服务
服务部署和安装是最后一步。 这样你就可以安全地 运行 部署中的所有 the steps 并且你的服务应该可以在 dll 部署到文件夹后工作。
还有一点要记住,部署到 new/clean 机器应该会导致完全设置服务(包含所有必需的库)。