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

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

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

【问题讨论】:

    标签: .net wix clickonce web-deployment


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

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

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

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

    【讨论】:

    • 无法使用 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(尽管您可以使用大多数其他安装程序语言/系统)来制作一个可运行的自安装应用程序。

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

    两个难题是:

    1. 设置文件
    2. 本地注册表设置

    对于设置文件,我使用远程 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 中得到修复。谢谢
    猜你喜欢
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多