【问题标题】:Setting up Continuous integration and continuous deployment for Microsoft Applications为 Microsoft 应用程序设置持续集成和持续部署
【发布时间】:2017-08-10 20:18:49
【问题描述】:

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

我想设置同构解决方案并希望使用为 Microsoft 设置的相同工具。

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

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

现在我有几个问题:

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

-- 我应该如何继续使用 web .net 应用程序?

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

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

【问题讨论】:

  • 这个问题并不适合 StackOverflow。你应该在别的地方问。但是,我可以告诉您,nuget 不适合将应用程序部署到桌面。它用于向开发人员部署二进制组件。
  • 感谢@PalleDue,我尝试阅读了几个博客,但没有找到任何解决方案,所以我在这里发布了。

标签: .net jenkins continuous-integration nexus continuous-deployment


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    我找到了解决方案:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-01
      • 2015-04-20
      • 1970-01-01
      • 1970-01-01
      • 2014-07-19
      • 2018-11-16
      • 2015-03-17
      • 1970-01-01
      相关资源
      最近更新 更多