如何使用MSI部署WPF应用程序

时间:2011-07-07 14:23:55

标签: wpf deployment

我有一个WPF C#桌面应用程序需要在VS2010中部署为MSI(Windows Installer部署,而不是ClickOnce部署)。我的应用程序将在运行时生成SQL CE数据库,操作Excel工作簿,以及从/向COM端口接收/传输数据 - 所以我不知道部署这样的应用程序的适当方式是什么。

我正在查看Windows Installer Deployment Tasks,这对我没有帮助。

有人能告诉我一些资源,说明如何将应用程序部署为MSI安装程序吗?

3 个答案:

答案 0 :(得分:3)

如果您不想要ClickOnce,那么您可能需要创建自己的MSI。在这种情况下,您可以使用:

  1. Visual Studio中的内置安装项目类型。它做得不错但有局限性。如果您没有很多依赖项或自定义操作,则可以很好地工作。
  2. 像InstallShield这样的商业工具
  3. WIX (Windows Installer XML)
  4. 我已经尝试了1和3.虽然WIX有一点学习曲线,但它是一种非常丰富的方式来做你想做的事情。有一些可用的文档和一些非常好的“开箱即用”向导序列来处理您的标准安装方案(许可证,功能选择,依赖项等)。 WIX确实有一些VS集成,效果很好。

    您可以在http://wix.sourceforge.net/

    了解有关WIX的更多信息

    注意:的 VS安装项目可以执行自定义操作,并安装依赖项,但您必须使用自定义操作。如果您想参数化自定义操作,那么您需要找到关于该主题的不那么直观的说明。

    VS安装项目的另一个限制是安装项目只能由VS(devenv.exe)编译为MSI。这意味着除非您在那里安装Visual Studio,否则无法在构建服务器上编译MSI。这对我来说是一个阻止,所以我切换到WIX并对结果非常满意。

答案 1 :(得分:1)

对于像我这样在高低搜索如何部署MSI之后发现这篇文章的人,你现在需要一个扩展,因为visual studio团队删除了内置的启动项目功能。您现在需要下载Visual Studio Installer Projects扩展。

有关删除的讨论,请参阅this用户语音帖子,here是指向该扩展程序的链接。

对于寻求通过Visual Studio生成MSI的快速解决方案而不是深入了解Wix的人来说非常有用(尽管如果您需要更高级的部署选项,请务必走这条路线)。

答案 2 :(得分:0)

将您的WPF应用程序配置为发布为ClickOnce应用程序。您可以在项目属性的“发布”选项卡中执行此操作。

如果使用“发布向导”(通过单击属性页面上的恰当命名按钮),您可以指定(在第二页上)用户将安装“从CD-ROM或DVD-ROM”。 此选项将在项目输出目录的发布子文件夹中生成setup.exe 文件。您的用户启动此setup.exe程序将安装WPF应用程序。您可以选择包含更新功能(但您不必)。

ClickOnce设置还允许您包含其他文件(例如,您的SQL CE数据库文件)和必要时的先决条件。