为 Microsoft 应用程序设置持续集成和持续部署

Setting up Continuous integration and continuous deployment for Microsoft Applications

在我的组织中,我们有 200 多个 Microsoft 桌面和 Web 应用程序。我正在尝试为这些应用程序设置持续集成和持续部署(我已经为 Java 个应用程序设置了)。我们已经在 Enterprises Github、Jenkins、Nexus、XL-Deploy 和 XL-Release 中部署了以下工具。我们还在 groovy 中开发了一个由 Jenkins 调用的框架,并在 Jenkins 中完成所有自动作业创建并将生成的工件推送到 nexus。

我想设置同类解决方案,并想为 Microsoft 使用相同的工具集。

我浏览了 Nexus 文档,但没有找到任何方法来存储生成的工件(.exe 或 MSI)它只支持 Nuget 包,我不确定它们是什么以及如何使用它们?

我能够在 Jenkins 中使用 msbuild.exe 构建我的项目解决方案文件执行 shell 并且能够以 .exe 和 MSI 的形式生成工件。

现在我有几个问题:

-- 我应该如何以及在何处对生成的工件(.exe 和 MSI)进行版本控制和存储,以及如何在目标主机上部署我的桌面应用程序(众所周知,我们需要双击 .exe安装它)。

-- 我应该如何处理 web .net 应用程序?

-- 什么是 nuget 包,我可以将它们用于桌面应用程序部署而不是 MSI,我是否需要为此修改我的代码中的任何内容?

PS:我知道 TFS 是解决方案,但由于成本限制,我们不能在我们的组织中使用它。

要上传非 Maven 项目工件,例如 zip、msi 等,您可以使用 Nexus Artifact Uploader。为此,必须创建 maven 类型的托管存储库,然后通过填充 GAV 参数将工件上传到此存储库,并且可以根据 GAV 参数检索工件。

要将工件部署到测试环境,请使用 WinRM Client Plugin 连接测试环境。

我找到了解决方案:

我正在做的是,我使用 msbuild 命令行编译解决方案文件,这将为我生成 .exes。生成 exe 后,我将使用 WIX 实用程序将它们打包到 MSI 中。生成 MSI 后,我使用 linux mv 命令和 for 循环对它们进行版本控制,我使用传递 GAV 参数的 maven 命令将它们推送到 Nexus 存储库中。