2

我正在尝试创建一个使用 AAD B2C 租户进行身份验证的全新 Xamarin Forms 应用程序。我已将应用程序代码基于 GitHub ( https://github.com/Azure-Samples/active-directory-b2c-xamarin-native ) 上的官方示例,当我克隆它时,它可以构建、运行和验证良好我的房客。

当我尝试从头开始将此示例重新创建为使用 PCL 进行代码共享的新 Xamarin Forms 应用程序时,我无法让它工作。首先,我必须将 PCL 配置文件从默认的 259 更改为 Profile7 才能安装 MSAL 版本 1.1.0-preview。当我从 github 示例代码复制并粘贴表单应用程序的 Droid 版本中的代码时,我在 MainActivity.cs 中遇到两个问题

  • “UIParent' 不包含带 1 个参数的构造函数”
  • “当前上下文中不存在名称 'AuthenticationContinuationHelper'”

我尝试在 Mac 和 PC 上从头开始创建新项目。我还尝试复制每个项目的 packages.config ,但没有运气从一个全新的项目中使用它。Xamarin Forms IOS 项目可以使用带有 1 个参数的构造函数并找到所需的 AuthenticationContinuationHelper 类。

有人知道我做错了什么吗?

4

2 回答 2

4

MSAL NuGet 安装程序中的某处存在错误。

在 Visual Studio 2017 (win) 或 Visual Studio for Mac 中创建新的 Xamarin Forms 应用程序解决方案时,Droid 项目会引用错误的 dll。

nuget 安装程序将“/packages/Microsoft.Identity.Client.1.1.0-preview/lib/netstandard1.3/Microsoft.Identity.Client.dll”中的 dll 安装到 Android 项目中。PCL 和 iOS 项目获得正确的 dll

如果您手动删除引用的 netstandard1.3 dll 并从 monoandroid70 目录添加 dll,代码将再次运行。

我在 MSAL 库项目中为此提出了一个问题:https ://github.com/AzureAD/microsoft-authentication-library-for-dotnet/issues/441

于 2017-06-29T08:07:57.327 回答
2

有相同的“AuthenticationContinuationHelper”问题。我不得不将“目标框架”设置为“Android 9.0 (Pie)”。在 Visual Studio 中,它位于 Android 项目属性 -> 应用程序 -> 使用 Android 版本编译。

于 2019-10-23T12:37:47.297 回答