Wix和Visual Studio安装程序之间的区别

时间:2013-03-07 10:23:43

标签: visual-studio-2010 visual-studio installer wix

我正在使用WPF开发Visual Studio应用程序,但现在是我必须选择安装程序的时刻。

我需要我的项目能够在GAC和注册表上编写,但我不确定是否应该使用Visual Studio安装程序或Wix ...我无法在Google上找到确切地说明差异的信息两者之间。

我发现Wix更完整,但我找不到任何指明其中一个或另一个真正差异的文章......

有人可以帮我找到更具体的信息或在两者之间做出选择吗?

编辑:抱歉,我指定:

我正在使用Visual Studio 2010专业版。

3 个答案:

答案 0 :(得分:9)

最终产品是相同的,Windows安装程序msi。

你到达那里的方式与众不同。使用旧的vdproj除了设置要复制的文件和注册表项之外没有太多记忆。如果您是.net开发人员,则还需要在C ++或VBS中创建自定义操作,而不是一项特别简单的任务。

然而,随着Wix的出现,还有更多的内置自定义操作可以让您创建丰富的安装体验,如果您需要创建自己的自定义操作,则可以使用.net。此外,创建一个可以与msi一起安装依赖项以及能够在WPF中创建前端的引导程序要容易得多。

正如@nvoigt所说,VS2012不支持旧的vdproj类型,如果没有做一些讨厌的设置(你必须安装VS),它也无法由构建服务器构建。

总而言之,确实应该没有使用什么的问题,Wix是前进的方向。

答案 1 :(得分:4)

Caveman_Dick写道:

  

“还有其他任何内容,您必须创建自定义操作”。

简而言之就是区别。 Visual Studio部署项目从底层的Windows安装程序中大量抽象,并密封了它的大部分功能。这违背了Windows Installer的设计,它应该是一个声明性的事务编程模型。

以安装Windows服务为例? Windows Installer具有ServiceInstall表。 VDPROJ无法公开这一点,因此您不会编写脆弱的自定义操作,从而导致安装程序不那么优雅且不太健壮。

另一方面,WiX是一个非常薄的抽象。这些都是关于XML XSD元素和表示底层Windows Installer表数据的属性。构建过程只是将XML转换为SQL表。如果MSI能够做到这一点,WiX可以(99%)做到这一点。

VDPROJ是一个可怕的错误,微软最终拥有它并将其杀死。现在WiX没有UI设计师(我在CodePlex上写了一个),所以你可能也想考虑InstallShield限量版(免费)。

使用ISLE和WiX的组合,我可以充分利用这两个方面。

答案 2 :(得分:0)

对于当前版本的Visual Studio不再提供安装项目,您可能希望使用Wix。否则,切换到当前版本的Visual Studio后,您将不得不再次编写它。