我正在使用Visual Studio Update 3 + Update 3补丁。我使用C#跨平台模板创建了一个Blank XAML App(Xamarin.Forms Portable)解决方案。我在Configuration Manager中检查了Build and Deploy。我已经更新了Xamarin.Forms 2.3.2.127的解决方案(2.2版本有相同的问题)。到目前为止,我已经能够运行Android和iOS应用程序了。我没有对源进行任何更改,我正在使用空项目。尝试运行UWP应用时,我在 App.xaml.cs 中收到错误:
Xamarin.Forms.Forms.Init(e)
System.AggregateException: One or more errors occurred.
(Error HRESULT E_FAIL has been returned from a call to a COM component.) --->
System.Runtime.InteropServices.COMException:
Error HRESULT E_FAIL has been returned from a call to a COM component.
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
at System.Threading.Tasks.Task`1.get_Result()
at Xamarin.Forms.Platform.UWP.WindowsBasePlatformServices.GetAssemblies()
at Xamarin.Forms.Registrar.RegisterAll(Type[] attrTypes)
at Xamarin.Forms.Forms.Init(IActivatedEventArgs launchActivatedEventArgs, IEnumerable`1 rendererAssemblies)
at Tester.UWP.App.OnLaunched(LaunchActivatedEventArgs e)
---> (Inner Exception #0) System.Runtime.InteropServices.COMException (0x80004005):
Error HRESULT E_FAIL has been returned from a call to a COM component.
答案 0 :(得分:1)
在Windows 10企业版2015 LTSB上将Visual Studio 2015作为VMware Fusion V8.5.0(4352717)中的来宾操作系统运行时,我遇到了完全相同的问题。主机操作系统是OSX El Captitan 10.11.6。
否则我有相同的设置:空白Xamarin项目(共享和便携式)在运行UWP项目时具有完全相同的结果。 Xamarin网站上的TodoREST示例也是如此。
用VS调试时,有几个 System.InvalidCastException出现在"这个"," e"和" rootFrame"在Xamarin.Forms.Forms.Init(e)的断点处;即:
this.FocusVisualKind' threw an exception of type 'System.InvalidCastException
at System.StubHelpers.StubHelpers.GetCOMIPFromRCW_WinRT(Object objSrc, IntPtr pCPCMD, IntPtr& ppTarget)\r\n at Windows.UI.Xaml.Application.get_FocusVisualKind()"
Message "Unable to cast object of type 'TodoREST.UWP.App' to type 'Windows.UI.Xaml.IApplication2'."
我尝试了几件事
但似乎没有任何影响这个例外。
最后我选择了一台物理Windows 10笔记本电脑,它就像一个魅力。
所以我最好的猜测是Windows在VMware内部作为Guest OS运行这一事实与此错误有关。
由于我已经浪费了太多时间,我唯一要做的就是将OSX更新到Sierra。无论是有效还是我将继续留在"本地" Windows解决方法。
答案 1 :(得分:0)
您可以尝试清理UWP项目并重新构建。