8

通常,当我在构建 VB.NET 程序时使用 ClickOnce,但它有一些缺点。我从来没有真正使用过其他任何东西,所以我不确定我的选择是什么。

ClickOnce 的缺点:

  • 由多个文件组成 - 分发一个文件似乎比管理一堆文件和下载器下载这些文件更容易。
  • 您必须为 CD 安装再次构建它(当最终用户没有互联网时)
  • 程序不会出现在程序文件中 - 它最终隐藏在某些应用程序捕获文件夹中,这使得快捷方式变得更加困难。

ClickOnce 的优点:

  • 有用。神奇地。它内置于 VisualStudio 2008 express 中。
  • 使升级应用程序变得容易。

Windows Installer 是否也执行这些操作?我知道它没有任何 ClickOnce 缺点,但很高兴知道它是否也具有 ClickOnce 优点。

更新:我最终使用了 Wix 2(Wix 3 可用,但在我做这个项目时,没有人有一个称职的教程)。这很好,因为它支持我(最终)需要的三件事。一个可选的 Windows 启动快捷方式、一个在安装程序完成时启动的选项,以及我老板认为可以防止用户点击错误选项的三段文字。

4

5 回答 5

6

你见过 WiX 吗?

http://wix.sourceforge.net/

它使用 XML 文件构建 Windows 安装程序,如果您想改进安装程序等,它还可以使用其他库。我承认我的学习曲线在开始时处于中高水平,但之后我能够毫不费力地构建第二个安装程序。

如果您愿意,它将处理更新和其他项目,并且您可以将文件夹权限等应用于安装程序。它还使您可以更好地控制您想要安装文件的确切位置,并且与所有标准化的 Windows 文件夹约定兼容,因此您可以指定“PROGRAM_DATA”或类似的内容,安装程序知道将其放入 C:\Documents 和Settings\All Users\Application Data 或 C:\ProgramData 取决于您运行的是 XP 还是 Vista。

有传言说 Office 2007 和 Visual Studio 2008 使用 WiX 来创建它们的安装程序,但我无法在任何地方验证这一点。我相信它是由微软内部的一些人开发的。

于 2008-08-06T15:38:52.287 回答
2

我同意 Joseph 的观点,我对 ClickOnce 的体验对于绝大多数项目来说都非常有用,尤其是在它使构建、发布和部署变得容易的企业环境中。在 ClickOnce 中实施“强制升级”以确保用户在运行时拥有最新版本要容易得多,这也是我使用它的主要原因。

ClickOnce 的问题:在企业环境中,代理服务器存在问题,并且解决方法不太理想。在这些情况下,我不得不从 UNC 路径部署一些应用程序......但你不能一直这样做。它的“沙盒”非常棒,直到您想要找到可执行文件或创建桌面快捷方式。

2008 年还没有部署,所以不确定这些问题是否仍然存在。

于 2008-08-22T13:39:46.563 回答
1

创建一个依赖于您的 EXE 的安装程序项目(这又取决于它需要的任何东西)是一个相当简单的过程 - 但您至少需要 VS 标准版。

在安装程序项目中,您可以创建自定义任务和对话步骤,让您可以执行任何您编写的代码。

缺少的是使用 ClickOnce 获得的自动升级和版本检查魔法。你仍然可以构建它,它不是自动的。

于 2008-08-06T15:33:21.500 回答
1

我不相信有任何简单的方法可以使 Windows Installer 项目具有 ClickOnce 的易用性或可升级性。我将 ClickOnce 用于我开发的所有内部 .NET 应用程序(控制台应用程序除外)。我发现在企业环境中,易于部署胜过缺乏灵活性。

于 2008-08-06T15:37:43.723 回答
1

如果您有需要与产品一起安装的第 3 方组件,ClickOnce 可能会出现问题。您可以通过为组件创建安装程序在一定程度上避免这种情况,但是使用 ClickOnce 部署,您必须创建更新所述组件安装程序的逻辑。

我以前曾使用 Wise For Windows Installer 创建安装包。虽然使用它创建升级并不是像 ClickOnce 那样自动进行,但当涉及到需要注册/添加的其他组件时,它们更加精确且不那么令人头疼。

于 2008-08-06T15:46:41.710 回答