MSI vs nuget包:哪个更适合持续交付?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MSI vs nuget包:哪个更适合持续交付?相关的知识,希望对你有一定的参考价值。
我们来讨论以下主题。目前正在部署的应用程序有很好的知道xcopy方法。这种方法很难管理依赖项,文件更新等。有一些软件包的帮助下启动应用程序部署的想法,你知道你在Linux的帮助下RPM,但适用于Windows。
所以我有疑问:在Windows经典Windows安装程序(msi)或nuget或其他东西上使用什么包系统更好?
MSI是公认的企业应用标准。与传统部署技术相比,它具有some major corporate benefits(
and the short, concise version
)。 WiX是创建MSI文件的新开源方式。
- Wix Toolset Download(
1)
主要WiX设置,2)
Votive - Visual Studio集成设置- WiX Documentation 安装WiX后,在安装文件夹“
WiX.chm
”中找到msi.chm
和%ProgramFiles(x86)%\WiX Toolset v3.11\doc
帮助文件,以便快速访问文档。 在线:WiX Reference Manual v3
,Official WiX Tutorial
。Github
,Bug Tracker
,Mailing List
,FireGiant WiX KDB
(FireGiant是WiX的商业分支)。- 为了了解Wix,您可能想要阅读quick, unofficial summary of the history behind it。
- MSBuild - 使用Visual Studio,Votive和MSBuild
- 收获(1):WiX有自己的工具,可以根据输入文件夹生成WiX标记。该工具称为heat.exe。 WiX的商业分支机构FireGiant有一个名为HeatWave的工具,具有更多功能。
其他工具:
- 然后你可能想要检查其他方式来提供安装程序,除了Wix,阅读:What installation product to use? InstallShield, WiX, Wise, Advanced Installer, etc(one more quick-list of tools)。
Hello World和Hello WiX:
- 最后查看一个完整的示例,说明Wix源文件及其组件在Codeproject上的外观。这是Wix的“Hello World”。
- "Hello WiX - step-by-step in Visual Studio"。 这需要WiX和Votive(WiX工具集Visual Studio扩展 - WiX的Visual Studio集成,因此您可以获得Intellisense)。 See download page。 底部标记中的内联注释可能就是您需要的所有内容。 Small sample of WiX preprocessor variables / defines。
更多示例代码:
WiX快速入门:以下是我为WiX发现的一些最佳示例代码链接:
- Helge Klein's real-world WiX sample - 检查一下(Wayback - Archived Version)。
- Rainer Stropek's WiX Samples on Github - 非常有帮助。
- From MSI to WiX by Alex Schevchuk - 老化的内容,但非常好。
- Chris Painter's IsWiX Tutorials - 优秀的WiX样品。
最后:
- Phil Wilson的MSI样本的Github存储库:https://github.com/Apress/def-guide-to-win-installer。最好的内容,但老化。一般MSI样本,而非WiX样本。
- 我的实验网站:installdude.com。
- How-to-create-a-Windows-Service-MSI-Installer-Using-WiX。
学习Wix的一些好的起始链接:
- My Wix quick start suggestions
- Good resources for learning how to create MSI installers from WiX
- How to implement WiX installer upgrade?(主要升级)
- What are limitations of WiX and WiX Toolset?
从Setup.exe
WiX Bundle或从MSI文件本身提取文件:
- Extract MSI from EXE - 包括如何提取嵌入在WiX Burn bundle可执行文件中的文件。
- How can I compare the content of two (or more) MSI files? - 包括如何使用WiX的
dark.exe
工具从MSI中提取文件
正如我在上面提到的“Wix快速入门”帖子中写的那样:Wix是亲自动手的。只关注简单但完整的现实世界样本,例如来自Codeproject的样本 - 单独阅读文档可能只是令人困惑。
专注于将应用程序拆分为组件并设置主要升级。每个组件使用一个文件作为经验法则,并阅读此答案以更好地理解组件创建:Change my component GUID in wix?
主要升级是部署软件最常用的升级机制(另一种常见升级类型是次要升级)。显然,升级已部署的内容显然至关重要。在部署第一个软件版本之前获取升级方案,以便您对部署解决方案充满信心。
一旦设置了组件并且升级解决方案正常工作,其余部分就会在您完成应用程序的部署要求时完成,并在Wix教程站点上检查示例:https://www.firegiant.com/wix/tutorial/。
对于那些直接编写Wix代码(没有GUI编辑器)的人,我建议你查看这个答案,以便保持你的源文件简洁:Syntax for guids in WIX?
进一步阅读: