WPF/WinForms 入门

重要

Visual Studio App Center 计划于 2025 年 3 月 31 日停用。 虽然可以继续使用 Visual Studio App Center,直到它完全停用,但你可以考虑迁移到几个建议的替代方法。

详细了解支持时间线和替代方案。

App Center SDK 使用模块化体系结构,因此可以使用任何或所有服务。

让我们开始在应用中设置 App Center SDK,以使用 App Center Analytics 和 App Center 崩溃。

1.先决条件

在开始之前,请确保满足以下先决条件:

  • 项目面向 .NET Framework 4.6.2 (或更高版本) 或 .NET Core 3.1 (或更高版本) 。
  • 仅当 WPF/WinForms 应用程序在 Windows 上运行时,才支持 .NET Core。
  • 如果从可移植库使用 SDK,它必须面向 .NET 标准 2.0 或更高版本, (PCL 不受) 支持。
  • PackageReference 项目类型。 此要求来自 SQLitePCL.raw 库。 有关详细信息,请参阅 https://github.com/ericsink/SQLitePCL.raw/issues/537
  • 将 SDK 集成到 VSTO 项目时存在一个已知问题。 如需更多详细信息,请访问 https://github.com/microsoft/appcenter-sdk-dotnet/issues/1583/

2.在 App Center 门户中创建应用以获取应用机密

如果已在 App Center 门户中创建了应用,则可以跳过此步骤。

  1. 注册或登录,点击门户右上角显示 “新增” 的蓝色按钮,然后从下拉菜单中选择“ 添加新应用 ”。
  2. 输入应用的名称和可选说明。
  3. 如上所述,根据项目选择合适的 OS 和平台。
  4. 点击右下角显示 “添加新应用”的按钮。

创建应用后,可以在 App Center 门户的“设置”页上获取其应用机密。 在 “设置” 页面的右上角,单击 三个垂直点 ,然后选择 Copy app secret 获取应用机密。

3. 添加 App Center SDK 模块

App Center SDK 可以使用 Visual Studio 或包管理器控制台进行集成。

注意

App Center SDK 使用 强名称程序集 来与使用强名称符号的应用程序兼容。

Visual Studio

  • 打开 Visual Studio。
  • 单击“ 文件>打开 ”并选择解决方案。
  • 在解决方案导航器中,右键单击“ 引用 ”,然后选择“ 管理 NuGet 包”。
  • “浏览”选项卡中,搜索 App Center,并安装 Microsoft.AppCenter.AnalyticsMicrosoft.AppCenter.Crashes 包。

程序包管理器控制台

  • Visual Studio 中打开控制台。 为此,请选择 “工具”>“NuGet 包管理器>包管理器控制台”。
  • 键入以下命令:
Install-Package Microsoft.AppCenter.Analytics
Install-Package Microsoft.AppCenter.Crashes

注意

如果在可移植项目中使用 App Center SDK,则必须在每个项目中安装包:可移植项目和运行 WPF/WinForms 应用的项目。 为此,应打开每个子项目并按照 Visual Studio 部分中所述的相应步骤进行操作。

4. 启动 SDK

若要使用 App Center,请选择要使用的模块 () 。 默认情况下,不会启动任何模块,必须在启动 SDK 时显式调用每个模块。

4.1 添加 Start() 方法

WPF

对于 WPF 应用程序,请修改 App.xaml.cs 并添加以下 using 语句:

using Microsoft.AppCenter;
using Microsoft.AppCenter.Analytics;
using Microsoft.AppCenter.Crashes;

然后在同一文件中,在 方法中添加以下代码 OnStartup

AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes));

App.xaml.cs如果文件没有 OnStartup 方法,则可以添加 Application.OnStartup(StartupEventArgs) 方法。 文件 App.xaml.cs 应如下所示:

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
      base.OnStartup(e);
      AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes));
    }
  }
}

警告

不建议在源代码中嵌入应用机密。

如果需要单独启动 App Center 服务,应:

  1. 使用应用机密配置或启动它。
  2. 如果代码可以多次调用,检查是否已配置 App Center。
  3. 在没有应用密码的情况下启动所需的服务 () 。
AppCenter.Configure("{Your App Secret}");
if (AppCenter.Configured)
{
    AppCenter.Start(typeof(Analytics)); 
    AppCenter.Start(typeof(Crashes)); 
}

WinForms

对于 WinForms 应用程序,请修改 Program.cs 文件并添加以下 using 语句:

using Microsoft.AppCenter;
using Microsoft.AppCenter.Analytics;
using Microsoft.AppCenter.Crashes;

然后,在同一文件中,在 方法的 Main 语句前 Application.Run 添加以下代码。

AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes));

如果需要单独启动 App Center 服务,应:

  1. 使用应用机密配置或启动它。
  2. 如果代码可以多次调用,检查是否已配置 App Center。
  3. 在没有应用密码的情况下启动所需的服务 () 。
AppCenter.Configure("{Your App Secret}");
if (AppCenter.Configured)
{
    AppCenter.Start(typeof(Analytics)); 
    AppCenter.Start(typeof(Crashes)); 
}

警告

不建议在源代码中嵌入应用机密。

4.2 将占位符替换为应用机密

请确保将文本替换为 {Your App Secret} 应用程序的实际值。 可以在 App Center 门户的“入门”页或“设置”页上找到应用机密。

入门页包含上述代码示例,其中包含应用机密,你可以复制粘贴整个示例。

上面的示例演示如何使用 Start() 方法,并包括 App Center Analytics。

除非在 start 方法中将每个服务显式指定为参数,否则不能使用该 App Center 服务。 此外,API Start() 在应用的生命周期中只能使用一次 - 所有其他调用都将记录警告到控制台,并且只有第一次调用中包含的服务可用。

很好,你都可以在 SDK 自动收集的门户中可视化崩溃。

查看 App Center AnalyticsApp Center 崩溃 的文档,了解如何自定义和使用这两种服务的更高级功能。