Vs更新System.TypeLoadException中的结果

时间:2014-11-17 04:41:26

标签: visual-studio-2013 windows-runtime typeloadexception

我正在开发一款Windows Phone 8.1 sdk
当我使用vs 2013更新3时,代码可以运行,我可以运行我的演示 但是,昨天,我更新了我的vs 2013以更新4,然后抛出一个System.TypeLoadException
代码详情如下:

var swapChainPanel = new SwapChainPanel();
Children.Add(swapChainPanel);
var res = new CXMapResource("", "");
cxEngine = new CXMapEngine(res);

类型 CXMapResource 是由c ++
编写的Windows运行时组件类型 它是第一个winrt类型我加载到我的代码中 我在这一行之前设置了一个断点,它在这里,然后继续,然后崩溃,
输出:

A first chance exception of type 'System.TypeLoadException' occurred in Com.AMap.winmd
A first chance exception of type 'System.Exception' occurred in WP8.1Demo.ni.EXE

2014年更新11 18 16:08

enter image description here

System.TypeLoadException was unhandled by user code
  HResult=-2146233054
  Message=Requested Windows Runtime type 'WinRTDXMapLib.CXMapResource' is not registered.
  Source=mscorlib
  TypeName=WinRTDXMapLib.CXMapResource
  StackTrace:
       at System.StubHelpers.StubHelpers.GetWinRTFactoryObject(IntPtr pCPCMD)
       at WinRTDXMapLib.CXMapResource..ctor(String EngineResourcePath, String ShaderResourcePath)
       at Com.AMap.Maps.Core.AmapSharpEngine..ctor()
       at Com.AMap.Api.Maps.AMapControl..ctor()
       at WP8._1Demo.MainPage..ctor()
       at WP8._1Demo.WP8_1Demo_XamlTypeInfo.XamlTypeInfoProvider.Activate_0_MainPage()
       at WP8._1Demo.WP8_1Demo_XamlTypeInfo.XamlUserType.ActivateInstance()
  InnerException: System.Runtime.InteropServices.COMException
       HResult=-2147221164
       Message=Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
       ErrorCode=-2147221164
       InnerException: 

我让我的大学在vs 2013 update 2中运行相同的代码,并且它正常工作 请告诉我可能导致这个问题的原因,给我一些建议,谢谢!!


  

现在有效!

VS 2013 UPDATE5 CTP2

2 个答案:

答案 0 :(得分:3)

不幸的是,我们在Update 4中遇到了同样的问题,这可能是由引用winmd(C ++)组件引起的。 我们遇到了适用于Windows 8.1的SmoothStreaming SDK的问题。

我们已经联系到微软但尚未回答。

一位同事通过重新安装Windows和Visual Studio解决了这个问题。然后他更新到更新3.(只是删除更新4没有为他工作) 我宁愿避免这种解决方案'但如果下周没有修补程序,我可能必须执行这些步骤。

更新

Microsoft回答了我的问题,他们将在Update 5中修复此问题。 https://connect.microsoft.com/VisualStudio/Feedback/Details/1036072

答案 1 :(得分:0)

讨论此问题:

Vs update result in System.TypeLoadException,was it a bug of VS?

VS2013 Update 4: TypeLoad Exception when referencing a winmd (C++) component

Connect: TypeLoadException when referencing a winmd C++ component

我可以在Connect:

重现此问题
  

您无法在c ++ winrt组件中使用param创建构造函数

*****你可以在这里看到我的演示项目(附件):*****
Vs update result in System.TypeLoadException