MSI vs nuget套餐:哪个更适合连续发货?
我们来讨论下面的话题。 有一个应用程序,目前正在部署知道xcopy方法很好。这种方法使得难以pipe理的依赖关系,文件更新等有一个想法,启动应用程序部署的帮助下的一些包,你知道你喜欢你在Linux的帮助下RPM ,但对于Windows。
所以我有问题:什么软件包系统更好地使用Windows经典Windows安装程序( MSI )或Nuget或别的东西?
微星是公认的企业应用标准。 与传统部署技术相比,它具有一些主要的公司效益 。
- Wix工具集下载 。
- Wix是创buildMSI文件的新的开源方式。
- 为了让您了解Wix ,您可能需要阅读其背后的历史概要 。
- 那么你可能想要检查其他的方式来提供一个安装程序,除了维克斯阅读: 什么样的安装产品使用? InstallShield,WiX,Wise,Advanced Installer等 。
- 最后查看一个Wix源文件及其组件在Codeproject上的完整示例 。 这是Wix的“Hello World” 。
一些很好的学习起始链接Wix:
- 我的Wix快速启动build议
- 学习如何从WiX创buildMSI安装程序的好资源
- 如何实施WiX安装程序升级?
- WiX和WiX Toolset有什么限制?
正如我在上面提出的“ Wix快速入门 ”文章中所写的那样: Wix是动手的 。 只关注简单但完整的真实世界的样本,比如来自Codeproject的样本 – 单独阅读文档可能仅仅是混淆 。
专注于将应用程序分解为组件并进行重大升级。 作为一个经验法则 , 每个组件使用一个文件 ,并阅读这个答案,以更好地理解组件创build: 在wix中更改我的组件GUID?
主要升级是部署软件最常用的升级机制(另一种常见升级types是次要升级)。 升级已经部署的内容显然是至关重要的。 在部署第一个软件版本之前获取升级scheme,以便您对部署解决scheme有信心。
一旦您设置了组件,并且升级解决scheme正在运行,其余部分在您按照应用程序的部署要求进行工作时就位于适当位置,并在Wix教程网站 http://wix.tramontana上检查示例。 co.hu/ 。
对于那些直接编写Wix代码(没有GUI编辑器),我build议你检查这个答案,以保持源文件简洁: WIX中guid的语法?
进一步阅读:
- Windows安装程序和WiX的创build
- 安装程序function,WIX与InstallShield Express
- Installshield或Wix
我现在要走这条路,我已经inheritance了使用MSI / WiX作为安装程序的软件,但是将转换的过程转换为连续的交付,并推出没有客户端交互的更新。 我认为它不适合鸽子洞作为一个SDK工具,在本质上它是一个部署版本化文件集的工具。 此外,如果您正在部署的软件已经在nuget上大量回复,并且您已经将程序集打包到nuget包中供内部使用,那么为什么要为混合添加额外的技术? 在msi中打包一个nuget.exe,定期调用update,完成。
我知道WiX支持创build补丁,但它似乎是事后才想到的。 另外,如果你的补丁安装失败会发生什么? 按顺序安装补丁程序? 你的主要安装程序需要UAC权限,而你的补丁不是?
我认为时代正在改变,MSI代表了一种思考事物的旧方式。 巧克力是一个很好的例子,但它仍然处于这个混合阶段,混合了这两种技术。
微星更像是拉 – 取得一个包,然后安装它。 Nuget更像是一个挑战 – 你得到一个软件包的名字,安装它,然后定期地调用update,然后下载并安装一个新的版本。