【问题标题】:Where do I store MSI files in .NET continuous integration scenario?在 .NET 持续集成方案中,我在哪里存储 MSI 文件?
【发布时间】:2014-04-04 16:03:10
【问题描述】:

我目前正在为 .Net 项目设置持续集成/部署方案。我目前正在使用 NuGet 来管理我的项目的依赖项以及在构建期间创建的工件。开发人员将 msi 包存储在 NuGet 存储库中是常见的做法吗?我还没有在网上看到一个例子。我不认为这项技术是为托管安装程序设计的。是否有任何其他技术可以维护安装程序版本控制的存储库?

【问题讨论】:

  • 您的项目是 msi 安装程序还是使用 msi 安装程序?没关系,我重新阅读了您的帖子,您正在使用可安装包中包含的 nu-get 包。
  • 您在使用版本控制软件吗?你有使用 msbuild 或 ant 的专用构建服务器吗?您是否使用任何 ci 管理工具,例如 Cruise control.net/team city/tfs?
  • 我正在使用 NuGet/MSBuild/Wix/Jenkins/。现在我想获取构建的 msi 工件并将其存储在某个管理系统中,以便可以检索它以进行部署或在以后进行部署。
  • 我想这类似于在构建后压缩所有二进制文件。但是,您更进一步并创建了可安装的映像。听起来 msi 是特定构建的 CI 周期的端点。将构建后的 msi 保存到以版本命名的目录就足够了吗?
  • 它不仅将其存储到目录中,而且使组织中的开发团队可以使用这些版本。这会加载大量范围蠕变发布/删除/查看/查找/搜索/安全。我希望有一个解决方案可以管理此功能。目前,我看到的唯一解决方案是将这个 MSI 推送到 nuget repo,这不符合惯例。

标签: .net installation windows-installer nuget


【解决方案1】:

也遇到过这种情况,很少有人真正了解构建 CI 部署管道时遇到的独特问题。

从安装系统级软件的角度来看,在 Microsoft Windows 上,在企业环境中...... MSI 确实是理想的选择,它们可以保护系统免受可怕脚本的影响,并提供一定程度的可靠性,这是其他情况下无法获得的。

但是,从 CI 的角度来看,MSI 并没有在您可以找到 NuGet 的所有地方进行本机集成。我们使用“Octopus”风格的部署,在 nuget 中有一个部署打包,我们称它们为“NuGetDeploy”包。

WinRM 到目标框,nuget 还原“NuGetDeploy”包,并进行 MSI 安装。

请记住,这只是系统级软件的正确选择,不能使用 webdeploy 之类的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    相关资源
    最近更新 更多