首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSI组件生成的最佳实践是什么?

MSI组件生成的最佳实践是什么?
EN

Stack Overflow用户
提问于 2010-12-03 02:19:58
回答 2查看 3.1K关注 0票数 7

Visual Studio Installer指出,最佳做法是将每个文件作为安装程序组件进行安装。Wix提供的热实用程序似乎也遵循了将每个文件放入其自己的组件中的做法。

InstallShield的组件向导使用InstallShield的安装程序最佳实践,将可移植的可执行文件放在自己的组件中,但将所有其他文件(例如,未版本化的文件)按公共目标文件夹进行分组。

练习1(每个文件都在其自己的组件中)的优点是,每个文件都设置为一个关键文件,如果您希望这些文件触发修复,这一点很重要。它还允许更容易地自动化创建组件(例如,热),因为您为每个文件创建一个组件。

实践一的缺点包括管理这么多组件的开销,以及安装应用程序后注册表的膨胀。

实践2的优点可以在将数百个图形文件安装到一个目录中的安装中看到。如果你不关心修复功能,有什么理由为这个安装创建数百个组件呢?

这两种不同的做法是相互冲突的,我想知道人们实际使用的是哪一种,以及为什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-03 19:52:46

我总是使用微软的方法(类似于InstallShield的方法):http://msdn.microsoft.com/en-us/library/aa368269(VS.85).aspx

我认为这是最好的,因为:-重要的文件(EXE,DLL等)有自己的组件,所以它们可以很容易地修复-资源文件被分组在一起-它允许最佳的组件数量(不是太多而不是长时间安装,但足够容易修复)

我还注意到,大多数商业安装编写工具都使用这种方法。

票数 3
EN

Stack Overflow用户

发布于 2010-12-03 03:50:10

我以前写过这方面的文章,我会试着找到它的链接。我认为你已经理解了这个问题,现在是时候决定对你来说什么是重要的了。

对我来说,我的工作是安装15,000+文件,我们只为主要的升级提供服务。对于“程序可执行文件”,我们遵循1:1原则(对于COM、服务、ShortCuts等等,无论如何都是必须的),但对于内容/数据文件,我们实际上是一对多的,没有关键文件的方法,以减少我们的组件数量。当然,这意味着我们不能创建一个MSP,只在这里或那里为一两个内容文件提供服务,但对于我们的业务需求,这对我们来说根本不重要。

Resilency对我们来说是一个4个字母的单词,所以减少关键文件会让我们更快乐。:-)顺便说一句,VDPROJ还使每个注册表项成为它自己组件的密钥文件,这对我们触发不必要的修复是相当痛苦的。

抛开所有这些,对于那些不完全理解所有这些的人来说,我会坚持1:1模式,直到你遇到你不想再这样做的情况,并且你明白了做出这个选择的影响。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4338373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档