hockeyapp 在 xamarin.forms 应用程序中的 UWP 上引发异常

Posted

技术标签:

【中文标题】hockeyapp 在 xamarin.forms 应用程序中的 UWP 上引发异常【英文标题】:hockeyapp throws exception on UWP in xamarin.forms application 【发布时间】:2017-05-18 15:20:53 【问题描述】:

当我现在尝试在模拟器和本地 win10 机器上使用 uwp 应用程序时,我在 androidios 中成功使用了 hockeyapp。它会因为缺少“'Windows.System.Profile.HardwareIdentification'.":"Windows.System.Profile.HardwareIdentification""

而抛出异常

我的UWP版本如下

我的应用程序是一个 xamarin.forms 应用程序。这是我安装的

XF 项目:HockeySDK.Xamarin、HockeySDK.Core UWP 项目:HockeySDK.Core、HockeySDK.UWP

在我添加的UWP项目MainPage.xaml.cs的构造函数中

 Microsoft.HockeyApp.HockeyClient.Current.Configure(HockeyAppID);

在 XF 项目中的 try catch 函数中,我触发 TrackException,如下所示

catch (Exception ex)
                
                Dictionary<string, string> properties = new Dictionary<string, string>();
                properties.Add(key, value);
                Microsoft.HockeyApp.HockeyClient.Current.TrackException(ex, properties);
                

当我搜索它时,我只找到this 之类的帖子,其中显示了如何获取 HardwareIdentification 但我认为 hockeyapp 应该为我获取它,并且它可以在 android 上获取。 UWP 有什么问题?如果是,我必须自己做吗?我应该在哪里传递这些信息?或者可能是我的win10安装有问题:)

【问题讨论】:

尝试了一个演示并将您的 catch 代码放入 UWP 项目中,我无法重现您的问题,您是否在 PCL 中发现异常? @GraceFeng-MSFT 在 PCL 中是。我实际上发现我的项目可以在另一台计算机上运行。在引发此异常的计算机中,位置 C:\Program Files (x86)\Windows Kits\10\References\Windows.System.Profile.ProfileHardwareTokenContract\1.0.0.0\ 中不存在 Windows.System.Profile.ProfileHardwareTokenContract.winmd .我不知道这是怎么发生的,我不确定这是否与 VS2017RC 安装有关。前一周我已经安装和卸载了它。然后问题开始了。你知道如何在没有完整安装 VS 的情况下恢复它吗? 你试过修复Programs and Features下的VS吗?如果它不起作用,我只能建议你重置你的电脑并重新安装VS ...我知道它很麻烦,但通常无法从电脑上卸载VS,这可能是这里的问题,正如你所说的你安装和已卸载VS。 @GraceFeng-MSFT 我相信这与 VS 无关。我已将我的 Win10 升级到周年更新,但即使在更新后,问题仍然存在。路径 C:\Program Files (x86)\Windows Kits\10\References\Windows.System.Profile.ProfileHardwareTokenContract\1.0.0.0 中缺少 Windows.System.Profile.ProfileHardwareTokenContract.winmd。如果没有新的 Windows 10 安装,我找不到任何信息如何恢复或修复此问题?请问您有什么想法吗? 【参考方案1】:

我终于找到了我的问题的答案。尽管我的 uwp 配置了图像中的最小和最大版本,并且我安装了 sdk 14393。

显然这还不够。如果你没有 SDK。 2015 年 11 月发布。(版本 10.0.10586.212),不会为 Windows.System.Profile.ProfileHardwareTokenContract.winmd 生成文件,如下图所示。一旦我也安装了这个 sdk,文件就成功创建了。

使用 hockeyapp、xamarin 洞察力、应用程序洞察力等似乎需要此文件,因为它们需要识别设备。稍后当您想将您的应用程序发送到 Windows 商店时,它也是必要的。我希望这可以帮助一些人

【讨论】:

以上是关于hockeyapp 在 xamarin.forms 应用程序中的 UWP 上引发异常的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Forms 手势密码实现

如何使用 Xamarin.Forms.Maps(无 Xamarin.Forms.GoogleMaps)在地图中应用样式或更改颜色

Xamarin.Forms:Forms.Context 已过时

Xamarin.Forms 和 Xamarin Native 有啥区别? [关闭]

Xamarin.forms(或)xamarin.ios/xamarin.android(或)本机

在 xamarin.forms 中应用动画