WinFormsComInterop
WinFormsComInterop copied to clipboard
Doesn't work with WebView2
Hi! This repo seems really useful to get some WinForms apps working with NativeAOT, however it seems to have some issues with WebView2. Using this repo removed some of the Com Wrappers exceptions but now it has a different one which I think is related to this repo:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.NotImplementedException: The method or operation is not implemented.
at WinFormsComInterop.WinFormsComWrappers.ComputeVtables(Object, CreateComInterfaceFlags, Int32&) + 0x1af
at System.Runtime.InteropServices.ComWrappers.CreateCCW(Object, CreateComInterfaceFlags) + 0x39
at System.Runtime.InteropServices.ComWrappers.<>c__DisplayClass25_0.<GetOrCreateComInterfaceForObject>b__0(Object) + 0x1c
at System.Runtime.CompilerServices.ConditionalWeakTable`2.GetValueLocked(TKey, ConditionalWeakTable`2.CreateValueCallback) + 0x26
at System.Runtime.CompilerServices.ConditionalWeakTable`2.GetValue(TKey, ConditionalWeakTable`2.CreateValueCallback) + 0x3e
at System.Runtime.InteropServices.ComWrappers.GetOrCreateComInterfaceForObject(Object, CreateComInterfaceFlags) + 0xa8
at System.Runtime.InteropServices.ComWrappers.ComInterfaceForObject(Object, Guid) + 0xe
at Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateCoreWebView2EnvironmentWithOptions(String, String, ICoreWebView2EnvironmentOptions, ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler) + 0xd7
at Microsoft.Web.WebView2.Core.CoreWebView2Environment.<CreateAsync>d__3.MoveNext() + 0xd0
--- End of stack trace from previous location ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x20
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task) + 0xb9
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task) + 0x44
at Renderer.Windows.RuntimeWindow.<<-ctor>b__4_0>d.MoveNext() + 0xdb
--- End of stack trace from previous location ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x20
at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object) + 0x28
at Renderer!<BaseAddress>+0xe709af
at System.InvokeUtils.CallDynamicInvokeMethod(Object, IntPtr, IntPtr, IntPtr, Object, Object[], BinderBundle, Boolean, Boolean) + 0x113
************** Loaded Assemblies **************
System.ComponentModel.TypeConverter
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Diagnostics.DiagnosticSource
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.ObjectModel
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Private.Uri
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.IO.Compression
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Net.NetworkInformation
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Windows.Forms.Primitives
Assembly Version: 6.0.1.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Collections
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Drawing.Common
Assembly Version: 6.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Design
Assembly Version: 6.0.1.0
Win32 Version: n/a
CodeBase:
----------------------------------------
Accessibility
Assembly Version: 4.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.ComponentModel.EventBasedAsync
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Net.Security
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Private.Xml
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
Renderer
Assembly Version: 1.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Net.Requests
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Runtime.CompilerServices.Unsafe
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Collections.Specialized
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Net.ServicePoint
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Windows.Forms.Design
Assembly Version: 6.0.1.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Linq.Expressions
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Security.Cryptography.Cng
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Runtime.Numerics
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
Microsoft.Web.WebView2.Core
Assembly Version: 1.0.1072.54
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Private.Interop
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Drawing.Primitives
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Configuration.ConfigurationManager
Assembly Version: 6.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Diagnostics.TraceSource
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Security.Cryptography.X509Certificates
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.ComponentModel.Primitives
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Runtime.Serialization.Formatters
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Private.CoreLib
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Text.RegularExpressions
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Collections.NonGeneric
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Net.Quic
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Threading
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.IO.Compression.Brotli
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Linq
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
WinFormsComInterop
Assembly Version: 0.2.9.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Text.Encoding.CodePages
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Security.Cryptography.Csp
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Threading.Channels
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Net.Sockets
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Diagnostics.Process
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Windows.Forms
Assembly Version: 6.0.1.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Security.Principal.Windows
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Net.Http
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
Microsoft.Win32.Registry
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
Microsoft.Win32.SystemEvents
Assembly Version: 6.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Security.Cryptography
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Net.Primitives
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Security.Claims
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Windows.Extensions
Assembly Version: 6.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Private.Reflection.Execution
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Net.WebHeaderCollection
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Runtime.InteropServices
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Resources.Writer
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Diagnostics.FileVersionInfo
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.CodeDom
Assembly Version: 6.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Private.TypeLoader
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Collections.Concurrent
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.ComponentModel
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Private.Reflection.Core
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Net.NameResolution
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Net.WebClient
Assembly Version: 7.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: n/a
CodeBase:
----------------------------------------
Microsoft.Web.WebView2.WinForms
Assembly Version: 1.0.1072.54
Win32 Version: n/a
CodeBase:
----------------------------------------
************** JIT Debugging **************
Could this be solved in the near future? Otherwise, is there a way to prod MS into giving NativeAOT more love/attention? It's very discouraging to spend time developing an app just to see it disassembled in a couple seconds with ILSpy. At least native code provides a layer of protection where you'd need to know assembler, and it's harder (but not impossible, I know) to alter.
Thanks!