Windows 桌面应用程序计划

你可以通过新的 Windows 桌面应用程序计划获得详细的遥测数据和分析报告,从而了解 Windows 桌面应用软件的运行情况。 若要查看这些报表,请导航到合作伙伴中心>见解仪表板> Windows 桌面应用程序,并单击“概述”。

只需注册并接受 Windows 桌面应用程序计划协议即可免费访问这些数据,然后使用用于对应用程序可执行文件进行签名的同一证书上传签名文件。

加入 Windows 桌面应用程序计划

如果你的公司已有合作伙伴中心帐户:登录到合作伙伴中心帐户(使用与帐户所有者关联的 Microsoft 帐户),并导航到计划页(在帐户设置中或通过在左侧导航菜单中选择全部)。 在 Windows 桌面应用程序计划下,单击开始使用加入该计划,无需额外付费。 如果你的合作伙伴中心帐户与 Azure AD 租户关联,则你添加的用户将能够访问 Windows 桌面应用程序计划。 很快,我们将允许你为该计划设置更精细的访问权限。

提示

如果你的公司有合作伙伴中心帐户,但你无权访问该帐户,请要求管理员将你添加为用户。 请注意,只有帐户所有者才能加入 Windows 桌面应用程序计划。

如果你的公司没有合作伙伴中心帐户:则你可以免费直接注册 Windows 桌面应用程序计划。 很快,我们将提供将 Azure AD 租户与你的帐户关联的选项,以便你公司的其他人也可以登录。

添加桌面应用程序

加入该计划后,需要将 Windows 桌面应用程序添加到仪表板,以便我们可以开始显示分析报告。

我们使用代码签名来建立你公司的身份,并检索你发布的应用程序的分析。

我们将向你提供一个文件,并要求你使用用于对桌面应用程序进行签名的相同有效、未过期、未吊销的代码签名证书进行签名。 之后,你将已签名的文件上传到仪表板。 这使我们知道,使用同一证书签名的任何桌面应用程序都属于你的帐户。 我们不会将你的证书信息用于任何其他目的。

重要

如果你要发布新的桌面应用程序,则无需重复此过程。 一旦你上传了签名文件,我们将自动识别使用相同证书签名的任何新应用程序,并自动检索这些产品的分析。 你也不需要在应用程序中分发所提供的文件,也不需要为你的产品提交任何类型的映射

添加一个或多个桌面应用程序

  1. 在仪表板中,选择添加桌面应用程序
  2. 在下一页上,通过选择下载文件下载可签名文件,然后将该文件保存到计算机。
  3. 使用用于验证桌面应用程序的相同代码签名证书对刚下载的文件进行签名。 你可以使用 SignTool.exe(在 Microsoft Visual Studio 中提供,并作为 Windows SDK 的一部分)对此文件进行签名。 下面将介绍有关此过程的更多详细信息。
  4. 将刚签名的文件拖到字段中,即可上传该文件(或单击浏览文件)。
  5. 选择提交请求以完成本过程。

steps to add desktop applications

如果使用多个代码签名证书,则可以对每个证书重复上述步骤。 可以下载、签署和上传用于签署应用程序的每个最新证书的文件。 但是,每个下载的文件只能使用一个证书。

完成这些步骤后,我们将确定哪些 Windows 桌面应用程序使用与你用于签署我们的文件相同的证书进行了签名。 在大多数情况下,我们将在 48 小时内开始向你显示分析报告,尽管有时可能需要更长的时间。

使用 signtool.exe 对下载的文件进行签名

Microsoft 提供了一个用于在 Visual Studio 和 Windows SDK 中对文件进行签名的工具 SignTool.exe。 可以使用此工具来执行和验证代码签名过程。 有关 SignTool.exe 的更多信息,请参阅此处

以下是使用此工具对可签名文件进行签名的两种最常见方法。

  • 如果你可以访问作为个人信息交换 (PFX) 文件的代码签名证书:

    signtool sign /f MyCert.pfx /p MyCertPassword /v SignableFile.bin
    

    Screenshot that shows a command prompt window showing the 'signtool sign /f MyCert.pfx /p MyCertPassword /v SignableFile.bin' command.

  • 如果代码签名证书在本地证书存储中可用:

    Signtool sign /v /s MY /n CertSubjectName SignableFile.bin
    

    command prompt window showing this command

对文件进行签名后,你可以验证是否已使用有效的证书成功地对其进行了签名,证书中包含以下内容:

signtool verify /a SignableFile.bin

查看分析数据

上传签名文件并确定桌面应用程序后,仪表板将显示应用程序概述以及关键指标。

我们的遥测数据将显示与你的证书相关联的每个应用程序的运行状况信息,如崩溃。 仪表板将显示应用程序的概述以及关键指标。 可以选择任何应用程序,在仪表板中查看其运行状况报告安装报告阻止报告。 还可以使用 Microsoft Store 分析 API 以编程方式检索分析数据

注意

如果我们检测到应用程序的元数据已更新为使用新名称,我们将开始在新名称下报告新数据。 与旧名称关联的历史数据将保留 30 天。

在应用程序至少安装在 100 台设备上之前,分析将不可用于该应用程序。

运行状况报告

通过运行状况报告,可以获取与应用性能和质量相关的数据,包括崩溃和无响应事件。 如果适用,可以查看堆栈跟踪和/或 CAB 文件进行进一步调试。

health report - windows desktop application program

可以通过多种方式筛选数据,从而可以:

  • 查看所有失败类型的摘要,按命中次数排序
  • 深入到特定故障并下载堆栈跟踪,以更快地调试问题
  • 将应用程序的新版本与以前的版本进行比较
  • 以汇总或按地区查看运行状况数据,从而隔离特定于某个地区的问题
  • 比较不同 Windows 版本或特定版本(如最新的 Windows 10 版本)的桌面应用程序的性能
  • 查看应用程序中包含的一个特定可执行文件的运行状况信息

选择故障表顶部的上传符号,上传包含应用程序的符号文件的 .zip 文件。 这些符号文件将被编入索引,并用于生成更准确的堆栈跟踪。 .zip 中的符号文件类型应为 .pdb、.dll 或 .exe。 成功上传 .zip 文件后,大约 5 天内,应用程序的故障列表中新故障的 !Unknown 值应该会减少。

安装报告

通过安装报告,可以查看任何一天安装了多少个应用程序的设备,以及过去 30 天内每个应用程序版本安装的平均设备数。

可以通过多种方式筛选数据,从而可以:

  • 查看按受欢迎程度排序的安装摘要
  • 将应用程序的新版本与以前的版本进行比较
  • 按汇总或按区域查看安装数据
  • 比较不同 Windows 版本或特定版本(如最新的 Windows 10 版本或 Windows 预览体验计划快速和慢速版本)的桌面应用程序的性能

应用程序块报告

通过应用程序报告,可以查看有关应用程序影响 Windows 10 升级的 Windows 10 设备的信息。 可以看到每天有多少设备受到影响,以及过去 30 天内设备的平均数量。

包括的升级块的类型如下所示:

类别问题说明向用户提供的指南
潜在 Sediment将阻止升级应用程序将无法在新的操作系统发布版本上运行。 安装过程中需要用户操作才能继续升级。升级前请删除该应用程序,并与开发人员联系以获取该应用程序的兼容版本。
临时 Sediment可能会阻止升级。 需要测试应用程序。Microsoft 正在调查与此应用程序相关的升级问题。 升级不会向可能受到影响的用户推出。升级前请删除该应用程序,并与开发人员联系以获取该应用程序的兼容版本。
运行时通知在新的操作系统发布版本中可能无法正常工作,但不会阻止升级应用程序不会阻止升级,但检测到的问题可能会阻止它在新的操作系统发布版本中正常运行。升级无需执行任何操作即可继续,但请确保在新的操作系统发布版本上测试应用程序,并在需要时与开发人员核实兼容版本。

使用 Microsoft Store 分析 API 检索分析数据

Microsoft Store 分析 API 允许以编程方式检索已添加到帐户的应用程序的分析数据。

此 API 提供以下特定于 Windows 桌面应用程序的方法:

有关使用此 API 的详细信息,请参阅使用存储服务访问分析数据

管理桌面应用程序元数据

我们使用可执行文件中的文件名、文件版本、产品名称和产品版本元数据来推断可执行文件在应用程序中的逻辑分组。 如果可执行文件没有准确的元数据,它们可能会一起出现在 Unknown 应用程序名称下,或者应用程序名称将默认为单个可执行文件名称。

保持应用程序和文件的元数据处于最新状态,有助于确保它们在仪表板中正确显示。 以下是一些建议:

  • 使用证书对要在分析报告中看到的每个可执行文件进行签名,而不仅仅是安装可执行文件。
  • 为属于同一应用程序(即 My application)的所有可执行文件提供一致的产品名称和产品版本信息。 如果某些可执行文件与多个应用程序一起分发,请为其提供唯一名称(即共享组件),以便可以将这些可执行文件与它们分发的应用程序分开查看分析。
  • 每次更改元数据时,都可以在仪表板中看到应用程序的新条目。 如果进行更改,新的传入遥测数据将反映更改,但旧遥测数据仍将显示为 Unknown 应用程序。
  • 修改文件时,请确保更新应用程序版本和产品版本号。

    提示

    使用 VERSIONINFO 资源为文件和应用程序设置 FileDescriptionFileVersionProductNameProductVersion。 以下示例定义 VERSIONINFO 资源:

    #define VER_PRODUCTNAME_STR      "Sample App"
    #define VER_PRODUCTVERSION       3,10,349,0
    #define VER_PRODUCTVERSION_STR   "3.10.349.0\0"
    #define VER_FILEDESCRIPTION_STR  "Sample File"
    #define VER_FILEVERSION          3,10,349,0
    #define VER_FILEVERSION_STR      "3.10.349.0\0"
    #define VER_COMPANYNAME_STR     "XYZ Corp."
    #define VER_LEGALCOPYRIGHT_STR   "Copyright \251 XYZ Corp." 
     
    VS_VERSION_INFO VERSIONINFO
    FILEVERSION VER_FILEVERSION
    PRODUCTVERSION VER_PRODUCTVERSION
    FILEFLAGSMASK VER_FILEFLAGSMASK
    FILEFLAGS VER_FILEFLAGS
    FILEOS VER_FILEOS
    FILETYPE VER_FILETYPE
    FILESUBTYPE VER_FILESUBTYPE
    BEGIN
        BLOCK "StringFileInfo"
        BEGIN
            BLOCK "040904E4"
            BEGIN
                VALUE "ProductName",      VER_PRODUCTNAME_STR
                VALUE "ProductVersion",   VER_PRODUCTVERSION_STR
                VALUE "FileDescription",  VER_FILEDESCRIPTION_STR
                VALUE "FileVersion",      VER_FILEVERSION_STR
                VALUE "CompanyName",      VER_COMPANYNAME_STR
                VALUE "LegalCopyright",   VER_LEGALCOPYRIGHT_STR
            END
        END
         
    END 
    

添加和管理帐户用户

可以使用 Azure Active Directory 在 Windows 桌面应用程序计划帐户中添加和管理其他用户。 可以添加单个用户、用户组或 Azure AD 应用程序,为每个用户提供预定义角色(经理或开发人员)。

将 Azure Active Directory 与帐户关联

若要添加和管理帐户用户,必须先将帐户与组织的 Azure Active Directory 相关联。 如果你的组织已经使用 Office 365 或 Microsoft 的其他业务服务,则你已经具有 Azure AD。 或者,你可以免费创建新的 Azure AD 租户。

有关详细信息,请参阅将 Azure Active Directory 与合作伙伴中心帐户关联。 虽然本主题重点介绍 Windows 应用开发人员计划,但关联租户的工作方式与 Windows 桌面应用程序计划的工作方式相同。

将用户、组和 Azure AD 应用程序添加到帐户

设置 Azure AD 关联后,可以通过转到“帐户设置”下的“用户”部分来添加用户。 每个用户都被分配了一个角色,该角色定义了他们对帐户的访问权限。 你还可以添加用户组和 Azure AD 应用程序,以授予他们对你的合作伙伴中心帐户的访问权限。 有关添加用户的详细信息,请参阅添加用户、组和 Azure AD 应用程序

必须为添加到帐户的每个用户、组或 Azure AD 应用程序分配一个角色。 为帐户用户设置角色或自定义权限中介绍了此过程。 但是,请注意,对于 Windows 桌面应用程序计划,无法分配自定义权限或按产品限制访问。 相反,必须为每个用户分配以下标准角色之一。

角色 说明
Manager 可以上传和删除证书,并可以查看所有分析数据。 除了更改财务信息外,对账户有完全的访问权限。 这包括管理用户,但请注意,在 Azure AD 租户中创建和删除用户的能力取决于帐户在 Azure AD 中的权限。 也就是说,如果为用户分配了“管理员”角色,但在组织的 Azure AD 中没有全局管理员权限,则他们将无法创建新用户或从目录中删除用户(尽管他们可以更改用户的帐户角色)。
请注意,如果你的帐户与多个 Azure AD 租户关联,则经理无法查看用户的完整详细信息(包括名字、姓氏、密码恢复电子邮件以及他们是否是 Azure AD 全局管理员),除非他们使用对该租户具有全局管理员权限的帐户登录到与该用户相同的租户。 但是,他们可以在与帐户关联的任何租户中添加和删除用户。
开发人员 可以查看与帐户关联的应用程序和证书详细信息,还可以查看运行状况安装报告。 无法查看财务信息或帐户设置。

常见问题解答

  • 为什么我看不到应用程序的任何数据? 在检测到足够多的用户来收集有意义的信息之前,我们不会显示数据。 如果你刚刚发布了应用程序,则可能需要一些时间才能达到此最低采用阈值。 你可能看不到数据的另一个原因是,你没有使用某个应用程序的证书对文件进行签名。 请确保你上传的文件使用用于为应用程序签名的每个证书签名。
  • 我可以通过 API 访问这些数据吗? 可以,当计划对所有开发人员都可用时,数据将通过公共 API 提供。
  • 使用旧证书的应用程序怎么办? 很遗憾,我们不支持提交过期或吊销的证书,即使使用相同的密钥续订证书也是如此。
  • 为什么我看到一个我不认识的应用程序? 如果你在应用程序中用于签署文件的证书也被你公司的其他人用于签署另一个应用程序,你也将看到该应用程序的遥测。 将来,我们将提供一个选项,从你的仪表板中隐藏应用程序。 如果你的公司帐户附加到 Azure AD 租户,可以请求管理员修改用户权限,以便只有特定的应用程序对你可见。
  • 如何提供有关体验的反馈或获取支持? 如果需要帮助,可以在此处创建支持请求。 若要共享反馈,请使用反馈链接(在帐户设置下),并选择分析区域,告知我们你的想法。