What platform is this on, macOS?
Dll resolving on macOS is tricky/difficult and using a very strange system, where the libraries (.dylibs, equivalent of a Windows .dll) specify the (relative or absolute) path where the exe should look for the dll. the @rpath is that. This mikeash.com: Friday Q&A 2009-11-06: Linking and Install Names is a fun read on the topic.
It sound like somehow the native libSkiaSharp.framework is not being deployed as it should or the exe is not setting the right rpaths.
I will have a look at the projects. Could you send me (if it’s not included in the zips already, I haven’t downloaded yet) the output of the VC# project, so I can compare (as I’m traveling thisweek, and not set up right now to build that one locally).
thanx,
marc
Update this is odd. the skiasharp.nativeassets.macos package has libSkiaSharp.dylib, which is being deployed correctly for me (im testing on Mac only, right now). But I do repro that its its not being loaded; apparently it is checkin these 6 paths, all of which expect the dylib to be inside a “libSkiaSharp.framework” — which does not exist.
dlopen(/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0-preview.2.23128.3/@rpath/libSkiaSharp.framework/libSkiaSharp.dylib, 0x0001): tried: '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0-preview.2.23128.3/@rpath/libSkiaSharp.framework/libSkiaSharp.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0-preview.2.23128.3/@rpath/libSkiaSharp.framework/libSkiaSharp.dylib' (no such file), '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0-preview.2.23128.3/@rpath/libSkiaSharp.framework/libSkiaSharp.dylib' (no such file)
dlopen(/Users/mh/Downloads/SkiaSharp_oxygene/Bin/Debug/@rpath/libSkiaSharp.framework/libSkiaSharp.dylib, 0x0001): tried: '/Users/mh/Downloads/SkiaSharp_oxygene/Bin/Debug/@rpath/libSkiaSharp.framework/libSkiaSharp.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/mh/Downloads/SkiaSharp_oxygene/Bin/Debug/@rpath/libSkiaSharp.framework/libSkiaSharp.dylib' (no such file), '/Users/mh/Downloads/SkiaSharp_oxygene/Bin/Debug/@rpath/libSkiaSharp.framework/libSkiaSharp.dylib' (no such file)
dlopen(@rpath/libSkiaSharp.framework/libSkiaSharp.dylib, 0x0001):
dlopen(/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0-preview.2.23128.3/@rpath/libSkiaSharp.framework/libSkiaSharp, 0x0001): tried: '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0-preview.2.23128.3/@rpath/libSkiaSharp.framework/libSkiaSharp' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0-preview.2.23128.3/@rpath/libSkiaSharp.framework/libSkiaSharp' (no such file), '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/8.0.0-preview.2.23128.3/@rpath/libSkiaSharp.framework/libSkiaSharp' (no such file), '/Library/Frameworks/libSkiaSharp.framework/libSkiaSharp' (no such file), '/System/Library/Frameworks/libSkiaSharp.framework/libSkiaSharp' (no such file, not in dyld cache)
dlopen(/Users/mh/Downloads/SkiaSharp_oxygene/Bin/Debug/@rpath/libSkiaSharp.framework/libSkiaSharp, 0x0001): tried: '/Users/mh/Downloads/SkiaSharp_oxygene/Bin/Debug/@rpath/libSkiaSharp.framework/libSkiaSharp' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/mh/Downloads/SkiaSharp_oxygene/Bin/Debug/@rpath/libSkiaSharp.framework/libSkiaSharp' (no such file), '/Users/mh/Downloads/SkiaSharp_oxygene/Bin/Debug/@rpath/libSkiaSharp.framework/libSkiaSharp' (no such file), '/Library/Frameworks/libSkiaSharp.framework/libSkiaSharp' (no such file), '/System/Library/Frameworks/libSkiaSharp.framework/libSkiaSharp' (no such file, not in dyld cache)
dlopen(@rpath/libSkiaSharp.framework/libSkiaSharp, 0x0001): tried: '/Library/Frameworks/libSkiaSharp.framework/libSkiaSharp' (no such file), '/System/Library/Frameworks/libSkiaSharp.framework/libSkiaSharp' (no such file, not in dyld cache)
without seeing what C# generates, right now just from looking at the Oxygene project and the input packages, I would say this is “expected”, this dll depends on a .framework it doesn’t ship. :(.