【问题标题】:Is it possible to create a portable UWP app (=no installation needed)是否可以创建便携式 UWP 应用程序(=无需安装)
【发布时间】:2023-09-07 22:45:01
【问题描述】:

UWP 基础架构似乎具备便携模型所需的一切。

  • 操作系统和应用程序之间的明确分离
  • 不同应用程序之间的明确区分
  • 更少的依赖关系
  • 支持可移植类库

据我所知,目前不支持便携式场景。这是我们未来可以期待的事情,还是由于 UWP/WinRT 的架构而本质上是不可能的

创建某种可以运行任何本地 UWP 应用的主机可执行文件有多难。目前我正在寻找不同 Windows 10 PC 之间的可移植性。没有那么多跨设备或跨操作系统。

我知道您可以侧载 UWP 应用,但这不是我想要的。

【问题讨论】:

    标签: windows-runtime win-universal-app portability


    【解决方案1】:

    这是我们未来可以期待的,还是由于 UWP/WinRT 的架构而本质上是不可能的

    我认为没有任何重大的技术限制可以阻止这种情况。 UWP 应用可以注册到一些全局机制(便携式应用不应该这样做),例如推送通知或后台任务,但整个应用模型的设计使用户可以限制对每个应用的这些功能的访问.因此,每个发布应用程序的开发人员都应该事先考虑到这些代码路径可能会失败。

    但“技术上可行”并不意味着微软会这样做。事实上,我严重怀疑他们永远不会。原因很简单:他们正在全力推动商店,甚至试图在上面放置 Win32 应用程序。显然,他们正朝着在商店中投放更多应用的方向发展,而不是相反。

    至于是否有可能制作第三方独立跑步者,我认为是的。在为 UWP 应用程序运行单元测试时,Visual Studio 正在启动一种托管应用程序的“外壳”(最近变得非常明显,因为在更新 Windows 10 之后,允许隐藏启动画面的 API 不再工作了)。我不知道使用什么 API 来创建这个 shell,但如果我想制作一个便携式 UWP 主机,我肯定会这样挖掘。

    【讨论】:

    • 谢谢,很多有用的信息。我最担心的是 Ms 已经建立了某种保护机制(通过加密)来阻止任何位于已知范围之外的应用程序。
    【解决方案2】:

    虽然我自己没有这样做(如果和何时会更新答案),阅读this 文章会让我觉得有一种简单的方法可以创建调用该命令的安装程序。

    简单来说,一个appx包可以使用命令在本地安装:

    C:\Program Files (x86)\Windows Kits\10\bin\x86\WinAppDeployCmd.exe

    这可能包含在 UI 或 CMD 安装程序中。 Here 是一个很好的例子(不是我的)。

    【讨论】:

      最近更新 更多