ClickOnce 都有哪些替代品? [关闭]

Posted

技术标签:

【中文标题】ClickOnce 都有哪些替代品? [关闭]【英文标题】:What alternatives are there to ClickOnce? [closed]ClickOnce 有哪些替代品? [关闭] 【发布时间】:2010-10-12 00:37:20 【问题描述】:

这些年来我经常使用ClickOnce,但我遇到了它的许多限制。 Web 部署有哪些替代方案?

到目前为止,我唯一能找到的是ClickThrough,它是WiX 的一部分,现在被搁置了。还有其他成功的吗?

【问题讨论】:

【参考方案1】:

Squirrel: 就像 ClickOnce,但它有效。

Squirrel 既是一组工具又是一个库,可以完全管理安装和更新桌面 Windows 应用程序,使用 C# 或任何其他语言编写(也就是说,Squirrel 可以管理本机 C++ 应用程序)。

Squirrel 使用NuGet 包来创建安装和更新包,这意味着您可能已经知道创建安装程序所需的大部分内容。

【讨论】:

Squirrel for windows 不支持 Windows XP 或 .net 4.0,但如果可以接受,那么它是一个不错的选择。 Squirrel.Windows 是 ClickOnce 的绝佳替代品。我已经完成了从 ClickOnce 到 Squirrel 的迁移,并且每一步都很顺利。我花了很多时间来确保我了解可能影响我迁移的所有方面,并且到目前为止的回报似乎值得投资。 嗯,它没有任何对话框或 GUI 来指导用户完成更新过程吗?只是默默地在后台复制文件?【参考方案2】:

在使用了 WiX、NSIS 和 InstallAware 之后,我不得不谦虚地承认,对于我作为软件开发人员真正需要的东西来说,它们都太过分了。到目前为止,我完成的所有项目都无法使用 Visual Studio 部署项目进行部署。

有限制吗?是的。

它也非常易于学习和使用。此外,您实际上可以使用here中描述的技术自动创建补丁(.MSP 文件)。

我完全理解您无法在 Visual Studio 安装项目中完成所有操作,但您能够完成的工作却令人惊讶。它是免费的、简单的,而且坦率地说,与花费大量时间学习 WiX 令人难以置信的 XML(尽管它令人印象深刻)或 InstallAware 的冗长脚本相比,它对于一般用途来说是一个更好的选择。

使用 VS 设置,它是拖放和构建和部署。我尝试过的所有其他解决方案都遇到了挫折……它们无法自动检测您的项目输出……或者需要特殊的过滤器才能不包含构建中不需要的输出。

因此我的建议是:如果您只是希望部署您的项目,那么请学习:

    如何构建自定义安装程序类,以及 如何编写自己的必备软件包

这些都是相当容易掌握的技能,并且可以满足大多数开发人员的需求。

【讨论】:

无法使用 MsBuild 构建 Visual Studio 安装项目,因此如果您将发布过程自动化,那么它们是不行的。 .vdproj(VS 安装项目)已从 VS2012 中删除。 .vdproj 现在支持 VS 2013 visualstudiogallery.msdn.microsoft.com/… Visual Studio 安装项目在 Visual Studio 的某些 Express 版本(所有 Express 版本?)中可用。 “Microsoft Visual Studio 安装程序项目”可以通过“管理扩展”添加到 Visual Studio【参考方案3】:

您在使用 ClickOnce 时遇到了哪些限制?当我不使用 ClickOnce 时,我使用 NSIS(尽管您可以使用大多数其他安装程序语言/系统)来制作一个可运行的自安装应用程序。

也就是说,当您运行下载时,它正在运行应用程序,并且没有任何设置问题。有一个菜单选项或允许永久安装的常用检测器。

两个难题是:

    设置文件 本地注册表设置

对于设置文件,我使用远程 Web 服务来保存状态等。

如果您需要本地注册表设置(文件关联等),那么您需要进行正确的安装,但这可以在用户第一次使用应用程序时静默完成。

【讨论】:

nsis 安装不适用于“design for”徽标。您必须使用 Windows 安装程序,我认为使用旧版安装程序不是一个好主意。 NSIS 几乎不是遗留问题,它仍然解决了许多在 WIX 等中不容易解决的问题 您是否曾经有客户要求“设计用于”合规性?提供客户想要的合理解决方案,而不是微软营销部门想要的! @TFD NSIS 对企业客户没有好处,如果不是 MSI,那么它不会推广到 1000 多台机器。 @sascha 我们谈论的是不通过公司推出机制部署的流程。这就是 ClickOnce 的用途 如果你愿意,你可以使用 WIX,但是 NSIS 容易得多,结果是一样的【参考方案4】:

看看这个 http://simpldeploy.com 它类似于 squirrel,但像 ClickOnce 一样集成到 VS 中。它有像 ClickOnce 这样的对话框(可选)。

【讨论】:

我喜欢这个选项,它比 Squirrel 简单得多。但不幸的是,它并不能完全替代 ClickOnce。它仅适用于 URL,目前不支持文件服务器/UNC 路径进行部署。作者说他们的积压中有这个,但不幸的是,它似乎不会很快实施。 :( 是的,这确实是个问题。对于没有公共域可用的环境,我们做了什么,我们只是设置了一个 iis 并将其发布到服务器 url (myinternalserver/apps/myapp) 我在尝试这个时遇到了另一个问题。首先是由于缺少Microsoft.VisualStudio.Shell.15.0.dll 导致的错误,我不知道为什么,因为我开始使用 VS Pro 2017。所以我通过 NuGet 下载它,使用 gacutil 将它安装到我的 GAC,现在我得到这个日志条目:pastebin.com/RNLhx2Zi VS 2017 版本 2.0.0 中存在问题。这已在当前版本 2.0.1 中得到修复。谢谢

以上是关于ClickOnce 都有哪些替代品? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

现在 Google 网络搜索 API 已被弃用,还都有哪些替代方案? [关闭]

Selenium 都有哪些替代品?

JSTL 的替代品都有哪些?

对于大量选择,ModelChoiceField 都有哪些替代方法?

pnpm 的包管理器替代品都有哪些?

使用 global.asax 都有哪些替代方法?