关于Visual Studio:部署VB.NET应用程序的最佳方法是什么?

关于Visual Studio:部署VB.NET应用程序的最佳方法是什么?

What is the best way to deploy a VB.NET application?

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

ClickOnce的缺点:

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

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来创建其安装程序,但我无法在任何地方进行验证。我确实相信它是由某些Microsoft内部人员开发的。


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

ClickOnce的问题:在公司环境中,代理服务器存在问题,解决方法也不尽人意。在这种情况下,我不得不从UNC路径中部署了一些应用程序...但是您不能一直这样做。在您要查找可执行文件或创建桌面快捷方式之前,它的"沙盒"非常有用。

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


如果您有需要与产品一起安装的第三方组件,则

ClickOnce可能会出现问题。您可以通过为组件创建安装程序来在某种程度上避免这种情况,但是,通过ClickOnce部署,您必须创建逻辑来更新所述组件安装程序。

我前世曾使用Wise For Windows Installer创建安装软件包。虽然使用它创建升级不是像ClickOnce那样自动进行的,但是当涉及到需要注册/添加的其他组件时,它们更加精确,并且省去了很多麻烦。


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


创建一个依赖于EXE的安装程序项目(这又取决于它的需求)是一个非常简单的过程-但是您至少需要VS Standard Edition。

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

缺少的是通过ClickOnce获得的自动升级和版本检查功能。您仍然可以内置它,但这不是自动的。


推荐阅读