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

ClickOnce 的缺点:

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

ClickOnce 的优点:

  • 有用。神奇的是。它内置在VisualStudio 2008 Express。
  • 使升级应用程序变得容易。

Windows Installer 也做这些事情吗?我知道它没有任何 ClickOnce 缺点,但很高兴知道它是否也有 ClickOnce 优点。

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

有帮助吗?

解决方案

你见过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 来创建其安装程序,但我无法在任何地方验证这一点。我确实相信它是由微软内部的一些人开发的。

其他提示

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

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

2008 年之后尚未部署,因此不确定这些问题是否仍然存在。

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

在安装程序项目中,您可以创建自定义任务和对话框步骤,以允许您执行编写的任何操作。

缺少的是 ClickOnce 提供的自动升级和版本检查功能。您仍然可以构建它,只是不是自动的。

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top