2010-10-18 106 views
18

我一直试图找到WiX(Windows安装程序XML)/ WiX工具集的文章或发布列表功能限制,但未取得成功。使用WiX的几个星期后,我能想到的至少两个限制在最近的RTM版本(V3.0):WiX和WiX Toolset有哪些限制?

  • 的WiX工具集不能做出引导程序(SETUP.EXE) 。
  • WiX Toolset无法检索COM注册来自COM的信息可执行文件

你能想到的其他限制?处理部署项目时遇到的一些问题?我认为这个信息对于学习WiX的人来说可能非常方便。

+1

感谢Yan和Chris提供的深刻见解。我希望我可以选择两个答案作为接受的答案。 – 2010-11-16 06:12:14

回答

19

我来回答了什么是维克斯缺少的InstallShield有(有间隙)条款这个问题最简单的方法。

  • 引导程序/ Chainer - 维克斯具有现在包含在WiX的3.6版引导程序叫烧伤。
  • XML阅读 - 维克斯只有CA对 写不读(AppSearch)XML 文件
  • 文本查找/替换 - 的InstallShield 有图案的读/写非 INI/XML文件
  • MSSQL只有 - 无支持Oracle 和MySQL
  • 自动化接口 - 没有DOM,用于 编程式更新/生成 项目。必须用原始的 XML来完成。
  • 没有本机IIS 7支持 - 本机IIS7支持来自WiX v3.5
  • 大部分为纯文本工具集。没有GUI 重型起重设计师(见 IsWiX)。 XML简洁,并且它的位置是 ,但它就像比较记事本 和Blend。

我已经使用热来提取COM相当成功,所以这不再是我的担忧。

+0

优秀点。谢谢。顺便说一句,我假设你使用热来从DLL提取COM信息,而不是EXE,对不对? – 2010-10-18 22:34:16

+0

@Chris:+1分为2 - 4.这些也影响了我的工作,但我忘了在我的答案中提到它。 – 2010-10-19 08:39:21

+0

我这样做的EXE/DLL和托管/非托管。我使用我写的一个小程序,将文件系统观察器放在一个目录中,并在每次内容更改时调用加热器。我把我的文件,然后我把它的依赖关系,直到它的工作和剪切/粘贴COM元素。然后在一台干净的机器上安装并测试。 – 2010-10-19 12:09:12

12

我想补充几个点,但这些都很难被称为严重的局限性,因为它们都可以围绕工作:

  • 有嵌入变换(MST)进入MSI软件包没有现成的工具;这就是msidb.exe来救援
  • 你必须做额外的工作来创建一个单一封装了一些本地化的,像创建N个包,生成N语言转换对中性包装,嵌入这些转变为包,指示您的引导程序调用正确的语言转换
  • WiX 3.0具有相当有限的IIS扩展 - 它仅在IIS 6兼容模式下支持IIS 7;但幸运的是,对于WiX 3.5而言,这不再是事实。
  • 默认情况下,Heat不能生成“1个组件 - N个文件”。是的,我知道,这不被推荐,但有时你需要它;幸运的是,您可以使用XSL
  • 以您喜欢的方式转换热量输出UtilExtension的PermissionEx没有交换机,只能在文件夹上设置ACL。如果您只需要将ACL设置为您的安装文件,这是相当小的。但是我必须快速修复WiX以便能够在现有的文件系统树上说“在这些文件夹上应用这些权限”

再次,让我重申一下,我不认为这些严重的限制。我对Rob和团队到目前为止所做的工作非常满意,他们正在走上正轨! :)

+0

正是我正在寻找的信息。谢谢Yan。 – 2010-10-18 20:42:31

+1

火车可能(大部分)在正确的轨道上,但它比计划落后了大约5年。我将WiX的局限性与InstallShield相结合,但从我的角度来看,缺乏引导程序是一个成功的杀手,它可以阻止我暂时使用100%的WiX。尽管如此,使用WiX来替代部分InstallShield已经非常适合我。 – 2010-10-18 22:05:21

+0

至于第二点:这正是SharpSetup所做的(+其他一些东西,例如它增加了在VS设计器中编辑安装程序GUI的能力)。 – 2010-11-06 01:30:22