我正在开发一款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
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中运行相同的代码,并且它正常工作 请告诉我可能导致这个问题的原因,给我一些建议,谢谢!!
现在有效!
答案 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