[Bug 50849] Multiple .NET 4.x app installers using WiX v3 'InvokeOutOfProcManagedCustomAction, CAInvokeMethod->Invoke_3 return incorrect result with Wine-Mono (Elgato Stream Deck 4.9.3, Garmin Express 6.13)

WineHQ Bugzilla wine-bugs at winehq.org
Fri Apr 30 13:57:30 CDT 2021


https://bugs.winehq.org/show_bug.cgi?id=50849

--- Comment #8 from Esme Povirk <madewokherd at gmail.com> ---
OK, so I have a theory about what's happening. The application creates a second
AppDomain named CustomAction. It then uses the _AppDomain COM interface and
related things to run code in it. The cominterop wrappers for these interfaces
will ensure that the methods are run in the correct domain.

Here's the problem: Object marshaling happens outside of the cominterop
wrapper, in the native-to-managed wrapper, so it runs in the default domain. So
GetNativeVariantForObject is running on the default domain, which has one set
of Type objects, but it's working with objects created by the CustomAction
domain, which have another set of Type objects.

We could fix the type comparisons so that they work with objects from another
domain (which isn't supposed to ever happen), but that won't really solve the
problem. Any object created by marshaling inputs will be from the default
domain and may behave weirdly. Also, COM interfaces created on output may be
wrong.

I don't know how to fix this, at least not without a redesign of the cominterop
code to pull all object marshaling into the cominterop wrapper.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list