Xamarin UWP - 如果编译为 Release,则列表联系人不起作用

Xamarin UWP - Listing Contacts does not work if compiled as Release

我正在体验一个非常有趣的 UWP "bug"。

我正在使用 Xamarin.Forms 2.3.3.193,我需要列出设备中的联系人。 在 UWP 项目中,如果在 Debug 中编译,一切正常,但如果在 Release 中编译,它就不再工作了(当然 Android 和 iOS 总是工作正常)。

这些是列出联系人的 UWP 服务的 2 行代码:

        ContactStore store = await ContactManager.RequestStoreAsync(ContactStoreAccessType.AllContactsReadOnly);
        IReadOnlyList<Contact> contacts = await store.FindContactsAsync();

FindContactsAsync() 方法 returns 在调试时为列表,但在发布时 returns 为空。

我也用过 James Montemagno 的 Xamarin.Plugin.Contacts,但遭遇同样的命运。

此外,我尝试了 here 提供的解决方案,但没有成功。

有什么建议吗?

在项目的 Properties > Build > General window 中使用 Compile with .NET Native tool chain 作为 UWP 应用程序的一个选项时可能会发生这种情况。

尝试取消选中此选项。

您尝试了 do this but it did not work for you. This should work according to this article

尝试更改您 UWP 项目 中的 App.xaml.cs 文件:

// you'll need to add `using System.Reflection;`
List<Assembly> assembliesToInclude = new List<Assembly>();

//Now, add in all the assemblies your app uses
assembliesToInclude.Add(typeof (ContactManager).GetTypeInfo().Assembly);

Xamarin.Forms.Forms.Init(e, assembliesToInclude);
// replaces Xamarin.Forms.Forms.Init(e);