我正在使用WPF开发Visual Studio应用程序,但现在是我必须选择安装程序的时刻。
我需要我的项目能够在GAC和注册表上编写,但我不确定是否应该使用Visual Studio安装程序或Wix ...我无法在Google上找到确切地说明差异的信息两者之间。
我发现Wix更完整,但我找不到任何指明其中一个或另一个真正差异的文章......
有人可以帮我找到更具体的信息或在两者之间做出选择吗?
编辑:抱歉,我指定:我正在使用Visual Studio 2010专业版。
答案 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后,您将不得不再次编写它。