包支持框架概述

包支持框架 (PSF) 是一个开放源代码工具包,有助于在无权访问源代码时将修补程序应用于现有桌面应用程序,以便其在 MSIX 容器中运行。 包支持框架可帮助应用程序遵循新式运行时环境的最佳做法。

下面是一些常见示例,你可以在其中找到适用的包支持框架:

  • 应用在启动时找不到某些 DLL。 可能需要设置当前工作目录。 在转换为 MSIX 之前,可以通过原始快捷方式了解所需的当前工作目录。
  • 应用将写入到安装文件夹中。 通常会在进程监视器中通过“拒绝访问”错误查看它。
  • 在启动时,应用需要将参数传递给可执行文件。 可以在此处了解更多有关 PSF 如何提供帮助的信息,并在此处了解更多有关可用配置的信息。

此轻型框架是开源的,可以使用它来快速解决应用程序问题。 在其中还可以咨询全球各地的社区,并基于其他产品的投资构建解决方案。

有关分步指南,请参阅入门指南

开始使用包支持框架

下面是你需要的工具:

  1. 包支持框架
  2. 获取进程监视器以识别问题

可以针对所有可用的修正工具检查 GitHub。 如果找到了修复程序,可将其应用到包。 我们的分步指南介绍了如何执行此操作。 其中还介绍了如何使用 Visual Studio 调试器逐步调试应用程序,验证该修复程序是否起到了作用并可以解决兼容性问题。

如果找不到可以解决问题的运行时修复程序,可以创建一个。 为此,需要识别当应用程序在 MSIX 容器中运行时哪些函数调用失败。 然后可以创建替代的函数,让运行时管理器改为调用这些函数。 这样,便可以使用符合新式运行时环境规则的行为来替代函数的实现。

若要创建包支持框架,我们利用了 Detours 技术,这是 Microsoft Research (MSR) 开发的一个开源框架,可帮助实现 API 重定向和挂接。

还可以使用包支持框架来运行脚本,以便针对用户环境来动态自定义应用程序。 有关详细信息,请参阅此文章

限制

包支持框架不支持注册表重写。 它旨在解决运行时问题。

数据和遥测

包支持框架包含遥测功能,该功能收集使用情况数据并将其发送给 Microsoft 以帮助改进我们的产品和服务。 请阅读 Microsoft 的隐私声明以了解详细信息。 但是,仅当满足以下两个条件时,才会收集数据:

  • 从 Windows 10 计算机上的 NuGet 包使用包支持框架二进制文件。
  • 用户已在计算机上启用数据收集。

NuGet 包中包含已签名的二进制文件,并且 NuGet 包将从计算机收集使用情况数据。 如果通过克隆存储库或直接下载二进制文件在本地生成二进制文件,则不会收集遥测数据。