2011-07-07 37 views
2

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

我正在寻找Windows Installer Deployment Tasks这不会帮助我入门。

任何人都可以告诉我一些资源,指出如何将应用程序部署为MSI安装程序?

回答

3

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

  1. Visual Studio中的内置安装项目类型。它做的不错,但有一定的局限性。如果您没有很多依赖项或自定义操作,则工作得很好。
  2. 一个商业工具像的InstallShield
  3. WIX (Windows Installer XML)

我都试过1和3。虽然维克斯有一个学习曲线的一点点,这是一个非常丰富的方式做你想要什么做。有一些相当可用的文档和一些非常好的“开箱即用”向导序列来处理标准安装场景(许可证,功能选择,依赖关系等)。 WIX确实有一些VS整合,效果很好。

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

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

VS安装项目的另一个限制是安装项目只能通过VS(devenv.exe)编译为MSI。这意味着MSI无法在构建服务器上编译,除非您也安装了Visual Studio。这对我来说是一个阻碍,所以我转向了WIX,对结果非常满意。

+0

NathanAW:“不能在....上运行” - 你的意思是计算机安装应用程序需要安装VS以及?所以应用程序的每个用户都需要安装Visual Studio?这对我没有意义.. – KMC

+1

对不起。只是意味着你不能将VS Setup项目编译为MSI,除非你安装了VS。你可以在任何地方安装MSI,即使它没有VS.对于那个很抱歉。 – NathanAW

0

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

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

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

1

对于像我这样的人,在搜索高低配置MSI后发现这篇文章,现在需要一个扩展,因为Visual Studio团队删除了内置的启动项目功能。您现在需要下载Visual Studio安装程序项目扩展。

请参阅this用于讨论删除的用户语音帖子,以及here是扩展的链接。

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