Jenkins 将 exe 和 dll 打包到 msi

Jenkins Packaging a exe and dll's to msi

我是新手 jenkins.I 我正在处理 C# 项目并使用 jenkins 进行持续构建和发布。我完成了为我的项目创建构建并获得了 .exe 和 dll 文件。但是我需要在部署到服务器之前重新打包它(创建一个 msi)。因此,任何人都可以提供有关重新打包的逐步信息和与 jenkins 一起用于打包的工具。我想在 jenkins CI 和 CD 中自动化这个过程。

与其说是 Jenkins 问题,不如说这是一个打包问题。

看看WIX Toolset。我过去在各种项目中成功地使用过它。与 Jenkins 的集成应该很容易。我知道有 2 个选项:

  1. 安装 WIX 工具集后,将新的 WIX 项目添加到您的 Visual Studio 解决方案中。配置完成后,将新项目提交到您的源代码存储库。然后开发人员可以在他们自己的开发工作站上构建 .MSI 包。假设您在 Jenkins 中使用 MSBuild 构建您的 C# 项目,新项目将 "just build" 并创建 .MSI 包(请记住在您的 Jenkins 构建服务器上安装 WIX)。这是推荐选项。
  2. 使用 WIX 的命令行实用程序在 Jenkins 批处理步骤中生成 MSI。这样比较麻烦,调试起来也比较困难。

重新打包意味着您有一个第三方安装程序,您希望将其逆向工程为 new/better MSI。你只是包装而不是重新包装。

这是一个由两部分组成的问题:

  1. 创作 MSI。我建议使用 WiX and IsWiX starting with this tutorial.

  2. 使用 Jenkins 构建它。 WiX 支持 MSBuild,而 Jenkins 有 MSBuild PlugIn。标准的东西,除了由 IsWiX 模板创建的 .WIXPROJ 期望您通过 MSBuild 属性 MSIProductVersion。 属性 的正确格式是 0-255.0-255.0-65535。如果您愿意,可以添加第四个字段,但它会被忽略。 IsWiX 项目模板默认设置为主要升级,因此请确保这 3 个字段之一在每个版本中增加。 ( 1.0.0, 1.0.1, 1.1.0, 1.1.1, 2.0.0 )