部署 VB.NET 应用程序的最佳方式是啥?

Posted

技术标签:

【中文标题】部署 VB.NET 应用程序的最佳方式是啥?【英文标题】:What is the best way to deploy a VB.NET application?部署 VB.NET 应用程序的最佳方式是什么? 【发布时间】:2010-09-05 10:28:02 【问题描述】:

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

ClickOnce 的缺点:

由多个文件组成 - 分发一个文件似乎比管理一堆文件和下载器下载这些文件更容易。 您必须为 CD 安装重新构建它(当最终用户没有互联网时) 程序没有出现在 Program Files 中 - 它最终隐藏在某个应用程序的 catch 文件夹中,因此更难找到快捷方式。

ClickOnce 的优点:

有效。神奇地。它已经建成 进入 VisualStudio 2008 express。 使升级变得容易 申请。

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

听起来很有趣。必须检查一下。【参考方案2】:

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

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

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

【讨论】:

【参考方案3】:

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

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

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

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

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

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

【讨论】:

以上是关于部署 VB.NET 应用程序的最佳方式是啥?的主要内容,如果未能解决你的问题,请参考以下文章

部署 JavaFX 应用程序、创建 JAR 和自包含应用程序以及本机安装程序的最佳方式是啥

vb.net 的最佳编程环境是啥? [关闭]

通过推送通知处理我的应用程序徽章计数的最佳方式是啥?

在 Web 应用程序中获取构建信息的最佳方式是啥?

使用带有 ADO 的 Excel 2010 VBA(或带有 LINQ 的 vb.net)查询表的最佳 SQL 语句是啥

设计“独立于平台”的 GWT 服务器的最佳方式是啥?