Description
Seems like tests are failing as a result of some issue with RivePlayer on Microsoft.WindowsAppSdk
1.6-preview1+ with AoT enabled:
System.TypeInitializationException: The type initializer for 'RiveSharp.Factory' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'rive' or one of its dependencies: The specified module could not be found. (0x8007007E)
Stack Trace:
at RiveSharp.RiveAPI.Factory_RegisterDelegates(FactoryDelegates delegates)
at RiveSharp.Factory..cctor()
--- End of inner exception stack trace ---
at RiveSharp.Scene..ctor()
at CommunityToolkit.Labs.WinUI.Rive.RivePlayer..ctor() in /_/components/RivePlayer/src/RivePlayer.cs:line 49
at RivePlayerExperiment.Tests.ExampleRivePlayerTestClass.ComplexAsyncLoadUIExampleWithoutDispatcherTest() in D:\a\Labs-Windows\Labs-Windows\components\RivePlayer\tests\ExampleRivePlayerTestClass.cs:line 121
at RivePlayerExperiment.Tests.ExampleRivePlayerTestClass.<ComplexAsyncLoadUIExampleWithoutDispatcherTest_ExampleRivePlayerTestClass_Test>b__12_0() in /_/ProjectHeads/AllComponents/Tests.Wasdk/obj/x64/Release/net8.0-windows10.0.22621.0/win-x64/CommunityToolkit.Tooling.TestGen/CommunityToolkit.Tooling.TestGen.UIThreadTestMethodGenerator/ComplexAsyncLoadUIExampleWithoutDispatcherTest_ExampleRivePlayerTestClass.g.cs:line 15
Originally posted by @Arlodotexe in #561 (comment)
It looks like this is happening because the Rive.RiveSharp
package is using runtime marshalling to call the native binary under the hood, which isn't AoT/trim friendly.
This issue should only be present when using Wasdk 1.6+ with AoT enabled. Other platforms are unaffected, but NativeAoT is not compatible with runtime marshalling. For more information, see Native interoperability best practices.
Fixing this will require changes to the underlying library. To avoid blocking the toolkit as a whole, the tests will be disabled on Wasdk until the issue can be resolved.
Metadata
Metadata
Assignees
Type
Projects
Status