是否可以创建便携式 UWP 应用程序(=无需安装)
Is it possible to create a portable UWP app (=no installation needed)
UWP 基础结构似乎具备便携式模型所需的一切。
- 明确区分 os 和应用程序
- 不同应用程序之间的明确区分
- 更少的依赖性
- 支持便携 class 库
据我所知,目前不支持便携场景。它是我们可以在未来期待的东西还是由于 UWP/WinRT
的架构而固有的 impossible
创建某种可以 运行 任何本地 UWP 应用程序的 host 可执行文件有多难。目前,我正在寻找 Windows 10 台不同 PC 之间的可移植性。与其说是 cross 设备,不如说是 cross OS.
我知道您可以旁加载 UWP 应用程序,但这不是我要找的。
Is it something that we can expect in the future or is it intrinsic impossible due the architecture of UWP/WinRT
我没有看到任何可以阻止这种情况的主要技术限制。 UWP 应用程序可以注册到一些全局机制(这是便携式应用程序不应该做的事情),例如推送通知或后台任务,但整个应用程序模型的设计使得用户可以在每个应用程序的基础上限制对这些功能的访问.因此,每个发布应用程序的开发人员都应该事先考虑到这些代码路径可能会失败。
但是"technically possible"并不意味着微软会这么做。事实上,我严重怀疑他们是否会这样做。原因很简单:他们竭尽全力推动商店发展,甚至试图在其上安装 Win32 应用程序。显然,他们正朝着在商店中放置更多应用程序的方向发展,而不是相反。
至于能不能做个第三方的独立跑分,我觉得是的。当 运行 对 UWP 应用程序进行单元测试时,Visual Studio 正在启动一种 "shell" 托管该应用程序(最近变得非常明显,因为在更新 Windows 10 之后,允许隐藏启动画面的 API 不再起作用了)。我不知道 API 是用来创建这个 shell 的,但如果我想制作一个便携式 UWP 主机,我肯定会那样做。
虽然我自己还没有这样做(如果什么时候会更新答案),阅读 this 文章让我觉得有一种简单的方法可以创建调用该命令的安装程序。
简而言之,可以使用命令在本地安装一个appx包:
C:\Program Files (x86)\Windows Kits\bin\x86\WinAppDeployCmd.exe
这可能会包含在 UI 或 CMD 安装程序中。
Here 的一个很好的例子(不是我的)。
UWP 基础结构似乎具备便携式模型所需的一切。
- 明确区分 os 和应用程序
- 不同应用程序之间的明确区分
- 更少的依赖性
- 支持便携 class 库
据我所知,目前不支持便携场景。它是我们可以在未来期待的东西还是由于 UWP/WinRT
的架构而固有的 impossible创建某种可以 运行 任何本地 UWP 应用程序的 host 可执行文件有多难。目前,我正在寻找 Windows 10 台不同 PC 之间的可移植性。与其说是 cross 设备,不如说是 cross OS.
我知道您可以旁加载 UWP 应用程序,但这不是我要找的。
Is it something that we can expect in the future or is it intrinsic impossible due the architecture of UWP/WinRT
我没有看到任何可以阻止这种情况的主要技术限制。 UWP 应用程序可以注册到一些全局机制(这是便携式应用程序不应该做的事情),例如推送通知或后台任务,但整个应用程序模型的设计使得用户可以在每个应用程序的基础上限制对这些功能的访问.因此,每个发布应用程序的开发人员都应该事先考虑到这些代码路径可能会失败。
但是"technically possible"并不意味着微软会这么做。事实上,我严重怀疑他们是否会这样做。原因很简单:他们竭尽全力推动商店发展,甚至试图在其上安装 Win32 应用程序。显然,他们正朝着在商店中放置更多应用程序的方向发展,而不是相反。
至于能不能做个第三方的独立跑分,我觉得是的。当 运行 对 UWP 应用程序进行单元测试时,Visual Studio 正在启动一种 "shell" 托管该应用程序(最近变得非常明显,因为在更新 Windows 10 之后,允许隐藏启动画面的 API 不再起作用了)。我不知道 API 是用来创建这个 shell 的,但如果我想制作一个便携式 UWP 主机,我肯定会那样做。
虽然我自己还没有这样做(如果什么时候会更新答案),阅读 this 文章让我觉得有一种简单的方法可以创建调用该命令的安装程序。
简而言之,可以使用命令在本地安装一个appx包:
C:\Program Files (x86)\Windows Kits\bin\x86\WinAppDeployCmd.exe
这可能会包含在 UI 或 CMD 安装程序中。 Here 的一个很好的例子(不是我的)。