Сбой в приложении UWP на устройстве ARM64 при выполнении API AcquireTokenInteractive для входа в MS Feed.

На ARM64 приложение аварийно завершает работу с исключением вSharedLibrary.dllпри выполнении APIAcquireTokenInteractiveдля входа в MS Feed.

Он корректно работает на устройствах x64.

Нашел похожую проблему в этом посте.

Единственное упоминание об обходном решении — это добавление следующего кода в группу свойств конфигурации проекта.

Образец кода:

      using Microsoft.Identity.Client;
using System;
using System.Diagnostics;
using System.Threading.Tasks;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;


namespace MSFeedSignInSampleApp
{
    public sealed partial class MainPage : Page
    {
        private AuthenticationResult authResult = null;
        private IPublicClientApplication publicClientApp;
        private string[] scopes = new string[] { "User.Read", "Notes.ReadWrite" };
        private const string clientId = "YOUR_CLIENT_ID";

        public MainPage()
        {
            this.InitializeComponent();
        }

        private void SignIn_ButtonClick(object sender, RoutedEventArgs e)
        {
            Debug.WriteLine("SignIn_ButtonClick starts");
            SignInAsync();
            Debug.WriteLine("SignIn_ButtonClick ends");
        }

        private async Task SignInAsync()
        {
            try
            {
                if (publicClientApp == null)
                {
                    publicClientApp = PublicClientApplicationBuilder.Create(clientId).Build();
                }

                authResult = await publicClientApp.AcquireTokenInteractive(scopes)
                                                      .ExecuteAsync()
                                                      .ConfigureAwait(false);

                Debug.WriteLine("Username:" + authResult.Account.Username + ", AccessToken: " + authResult.AccessToken);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Exception message: " + ex.Message);
            }
        }
    }
}

У меня есть следующие вопросы относительно этой проблемы:

  1. Почему проблема возникает только в устройстве ARM64?
  2. Что "UseDotNetNativeSharedAssemblyFrameworkPackage" делает? Как ложное решение проблемы?
  3. Какие могут быть побочные эффекты после добавления<UseDotNetNativeSharedAssemblyFrameworkPackage>false</UseDotNetNativeSharedAssemblyFrameworkPackage>
  4. Есть ли альтернативное решение?

0 ответов

Другие вопросы по тегам