【问题标题】:Can a MSIX package use an external file for user settings?MSIX 包可以使用外部文件进行用户设置吗?
【发布时间】:2020-05-25 13:42:34
【问题描述】:

我们正在评估从当前客户端/服务器应用程序到 .NET Core 的迁移。 3.0 版本添加了对我们客户端所需的 WinForms 的支持,但不支持 ClickOnce。 我们的解决方案是在本地安装的,我们需要包括设置(以及其他设置),例如应用程序服务器的地址。我们动态创建可用于安装和更新客户端并包含设置的 ClickOnce 包。这在今天就像一个魅力。用户使用 ClickOnce 包安装客户端,每次我们更新软件时,我们都会在客户站点重新生成这些包,他们会自动获得具有正确设置的新版本。

我们正在考虑将 MSIX 作为替代方案,但我们有一个问题: - 是否可以在安装时使用(​​部署)的 MSIX 包中添加一些外部设置文件?

软件本身的包可以静态生成,但我们如何在首次安装/更新时将设置分发给客户端?

【问题讨论】:

    标签: .net-core clickonce msix


    【解决方案1】:

    MSIX 支持modification packages。这与您想要的很接近,自定义是通过您安装应用的主 MSIX 包后安装的单独包完成的。

    它不能与您的主应用同时安装。当您尝试安装修改包时,操作系统会检查主应用程序是否已安装,如果在机器上找不到主应用程序,它将拒绝其安装。

    修改包是一个独立的包,installed in a separate location。检查我包含的链接,有一个PS窗口的截图,您可以在其中看到主包的安装路径和修改不同。

    在运行时(当用户启动应用程序时),操作系统知道这两个包已连接并合并它们的虚拟文件和注册表系统,因此应用程序“相信”所有资源都在一个包中。

    这意味着您可以分别更新主应用和修改包,并根据需要进行部署。

    如果我们更新修改包本身(不涉及主程序),是否会重新安装到所有使用它的客户端?

    如何部署更新?您想通过 Internet 使用自动更新工具吗?或者这些用户是否在公司内部网络中进行管理,并通过 SCCM 等工具获取所有应用更新?

    修改包主要是为 IT 部门设计的,我知道这也是你需要的。

    修改包与主包一样通过SCCM或其他工具部署,没有区别。

    对于 ISV,我认为 optional packages 是更好的解决方案。

    【讨论】:

    • 谢谢@Bogdan Mitarche。更新主包时会自动重新安装修改包吗?如果我们更新修改包本身(不接触主),它会重新安装到所有使用它的客户端吗?
    • 欢迎您。有关您的问题,请参阅我的更新答案。
    • 我们使用设置安装/更新我们的服务器。安装服务器后,我们有一个为客户端动态生成 ClickOnce 包的方法。 ClickOnce 包包含客户端的设置(例如服务器地址)。当管理员修改一些应该重新部署到所有客户端的重要设置时,也会使用此方法。 ClickOnce 包用于从本地文件夹或 http url 安装客户端。当我们重新创建它们时,客户端会自动更新,因为 ClickOnce 包配置为在启动时检查更新。
    • 对于这种情况,我认为可选包更合适。我还没有使用过这个功能,但是你可以在这里找到更多细节:docs.microsoft.com/en-us/windows/msix/package/optional-packages
    • 再次感谢您,博格丹!我刚刚申请了 MSIX 打包工具 Insider Preview,希望我们可以评估是否可以将它用于我们的场景。我将您的回答标记为已接受,因为它对我们有帮助。
    猜你喜欢
    • 2011-03-08
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-11
    • 1970-01-01
    • 1970-01-01
    • 2019-10-22
    相关资源
    最近更新 更多