Windows runtime Geolocator.GetGeopositionAsync引发“类未注册”异常c

Windows runtime Geolocator.GetGeopositionAsync引发“类未注册”异常c,windows-runtime,Windows Runtime,我在空白项目中运行下一个代码,并从HRESULT中获得类未注册异常:0x80040154 REGDB_E_CLASSNOTREG private Windows.Devices.Geolocation.Geolocator locator = new Windows.Devices.Geolocation.Geolocator(); private async void Button_Click(object sender, RoutedEventArgs e) {

我在空白项目中运行下一个代码,并从HRESULT中获得类未注册异常:0x80040154 REGDB_E_CLASSNOTREG

private Windows.Devices.Geolocation.Geolocator locator = new Windows.Devices.Geolocation.Geolocator();

    private async void Button_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            var position = await this.locator.GetGeopositionAsync();
        }
        catch (Exception ex)
        {
            //Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
        }
    }
另外,我尝试运行c和JS,但得到了相同的异常,我尝试在1台PC和1个网络上运行此示例。尽管如此。 我的笔记本电脑上有win8.1 rtm和VS2013 RC

另外,我在带有GNSS模块的8.1 Pro预览版的ARM平板电脑上,在tableti5-3317U处理器上,在不带GPS模块的8.1 rtm上运行此代码和Microsoft示例。我没有得到这个例外,一切正常。所以我认为这只发生在PC/模拟器上。
如何在PC/模拟器上测试地理定位应用程序?

代码有效,我在我的计算机上进行了测试:

        private async void Button_Click(object sender, RoutedEventArgs e)
    {
        var locator = new Windows.Devices.Geolocation.Geolocator();
        var position = await locator.GetGeopositionAsync();
    }
我使用Visual Studio 2012在Windows 8上进行了测试,并在Windows 8.1预览版和Visual Studio 2013预览版上进行了测试。只要设置了功能,就没有问题。我没有下载这个示例,即使对于复杂的场景,代码也可以直接编写。查看示例以获得灵感,但编写自己的代码。不必调试别人的逻辑,总是更容易:

代码在“pc机”和模拟器上进行了测试,虽然没有区别,因为模拟器是您的pc机,因为它是您自己计算机的远程桌面

确保为位置设置了功能:

如果需要,请使用模拟器中的位置选项设置特定地址:

我的断点

如果一切都失败了,照常做。卸载该应用程序,清理并重建,重新启动计算机和Visual Studio,并在安装并运行该应用程序后使用获取魅力栏检查是否设置了定位功能,然后选择“权限”。它应该说它有权限,请参见以下内容:


祝你好运

在8.0上测试此代码-工作正常。 在8.1 rtm上仍然得到类未注册异常。 我想我需要添加一些库,但不知道在哪里

UPD: 我发现问题出在哪里了。 我有win 8.1的Pro N版本。在pron中,此代码引发异常。
在企业版和专业版上都可以正常工作。

正如上面zedkommander所说,windows 8的N版本出现错误com

但他没有给出解决方案,所以我将给出:

Microsoft员工确认了此问题:

这种行为确实是“N”版本特有的。要在N版Windows上使用地理定位,需要安装Microsoft Media功能包

地理定位依赖于WPD Windows便携式设备基础设施,在安装功能包之前,WPD Windows便携式设备基础设施不在N版本中


如果您想修复它,您需要通过单击此处安装Microsoft Media功能包:

Hello Iris!是的,我尝试了你以前写的所有内容,但它不仅在我的电脑上不起作用。我在3台电脑和1台笔记本电脑上测试了这段代码。奇怪的是,它没有意义,N和KN版本中的功能与它们的等效完整版本相同,但不包括Windows Media Player或其他Windows Media相关技术,例如Windows Media Center和Windows DVD Maker。我知道,但事实是:我有4台pc和2台笔记本电脑,用1张磁盘安装了win 8.1 PRO N。他们所有人在这段代码中都有异常。如果有人拥有Pro N-也许可以运行此代码并检查它。在msdn论坛上,一个人说他在Enterprise N版本中重现了该错误。