Search Unity

Hololens native plugin fails to load

Discussion in 'VR' started by mikewarren, Apr 16, 2019.

  1. mikewarren

    mikewarren

    Joined:
    Apr 21, 2014
    Posts:
    109
    I'm having trouble getting a native plugin to load in a Unity application on the Hololens.

    I'm trying to using the SkiaSharp SVG (https://www.nuget.org/packages/SkiaSharp.Svg/) to render SVG graphics. (I know there is a Unity Vector Graphics preview, but it doesn't support the text element which is important in the graphics I'll be rendering.)

    The package has a couple managed dlls, and native dlls for x64 and x86. (They are tagged appropriately for x86/x64 in the Editor.)

    A UWP build (x86/Release) runs on my local machine, but fails in the HoloLens emulator and in the Hololens itself. The emulator complains that it cannot find the DLL libSkiaSharp. This is the native plugin.

    Anyone know what I'm doing wrong?

    Thanks.

    The output below seems to indicate that libSkiaSharp was loaded and then unloaded.

    'SPEAR.exe' (Win32): Loaded 'U:\Users\DefaultAccount\AppData\Local\DevelopmentFiles\SPEARVS.Release_Win32.mew9\SPEAR.exe'. Symbols loaded.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\ntdll.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\KernelBase.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\combase.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\ucrtbase.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\rpcrt4.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\kernel32legacy.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\bcryptprimitives.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'U:\Programs\WindowsApps\Microsoft.VCLibs.140.00_14.0.26706.0_x86__8wekyb3d8bbwe\vccorlib140_app.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'U:\Programs\WindowsApps\Microsoft.VCLibs.140.00_14.0.26706.0_x86__8wekyb3d8bbwe\vcruntime140_app.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'U:\Programs\WindowsApps\Microsoft.VCLibs.140.00_14.0.26706.0_x86__8wekyb3d8bbwe\msvcp140_app.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\oleaut32.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\msvcp_win.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\forwarders\kernel32.dll'. Cannot find or open the PDB file.
    The thread 0xb94 has exited with code 0 (0x0).
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\procthreadexthost.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\msvcrt.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\kernel.appcore.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\twinapi.appcore.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\sechost.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\bcrypt.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\WinTypes.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\SHCore.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\Windows.UI.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\win32u.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\MinUser.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\dcomp.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\gdi32.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\gdi32min.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\actxprxy.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\CoreMessaging.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\CoreUIComponents.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\advapi32legacy.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\sspicli.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\Windows.Graphics.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\Windows.Shell.ServiceHostBuilder.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'U:\Users\DefaultAccount\AppData\Local\DevelopmentFiles\SPEARVS.Release_Win32.mew9\UnityPlayer.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\mfreadwrite.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\d3d11.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\dxgi.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\mfplat.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\ws2_32.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\crypt32.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\MMDevAPI.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\cfgmgr32.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\devobj.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\msasn1.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\propsys.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\D3D12.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\msvcp110_win.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\RTWorkQ.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\ExecModelClient.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\execmodelproxy.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\Windows.Storage.ApplicationData.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\windows.storage.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\powrprof.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\shlwapi.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\profapi.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\MrmCoreR.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'U:\Users\DefaultAccount\AppData\Local\DevelopmentFiles\SPEARVS.Release_Win32.mew9\libSkiaSharp.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Unloaded 'U:\Users\DefaultAccount\AppData\Local\DevelopmentFiles\SPEARVS.Release_Win32.mew9\libSkiaSharp.dll'
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\InputHost.dll'. Cannot find or open the PDB file.
    Exception thrown at 0x76DF2502 in SPEAR.exe: Microsoft C++ exception: Cn::XH at memory location 0x013FE364.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\Windows.Devices.Enumeration.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\biwinrt.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\deviceassociation.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\UiaManager.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\Windows.UI.Core.TextInput.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\TextInputFramework.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\cryptbase.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'U:\Users\DefaultAccount\AppData\Local\DevelopmentFiles\SPEARVS.Release_Win32.mew9\GameAssembly.dll'. Symbols loaded.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\IPHLPAPI.DLL'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\mswsock.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\Windows.Networking.Connectivity.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\Windows.Networking.HostName.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\wshbth.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\dnsapi.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\nsi.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\dhcpcsvc6.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\dhcpcsvc.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\FWPUCLNT.DLL'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\nlaapi.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\Windows.ApplicationModel.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\ResourcePolicyClient.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Unloaded 'C:\Windows\System32\ResourcePolicyClient.dll'
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\rdvgu1132.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\rfxvmt.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\Windows.Media.Devices.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\DevDispItemProvider.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\AudioSes.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\threadpoolwinrt.dll'. Cannot find or open the PDB file.
    The thread 0x748 has exited with code 0 (0x0).
    The thread 0x1128 has exited with code 0 (0x0).
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\Windows.Gaming.Input.dll'. Cannot find or open the PDB file.
    onecoreuap\xbox\devices\api\winrt\pnpapiwrapper.cpp(385)\Windows.Gaming.Input.dll!7156757B: (caller: 71568E27) ReturnHr(1) tid(cf0) 8685C003 onecoreuap\xbox\devices\api\winrt\pnpapiwrapper.cpp(385)\Windows.Gaming.Input.dll!7156757B: (caller: 71568E27) ReturnHr(2) tid(cf0) 8685C003 onecoreuap\xbox\devices\api\winrt\pnpapiwrapper.cpp(385)\Windows.Gaming.Input.dll!7156757B: (caller: 71568E27) ReturnHr(3) tid(cf0) 8685C003 onecoreuap\xbox\devices\api\winrt\pnpapiwrapper.cpp(385)\Windows.Gaming.Input.dll!7156757B: (caller: 71568E27) ReturnHr(4) tid(cf0) 8685C003 onecoreuap\xbox\devices\api\winrt\pnpapiwrapper.cpp(385)\Windows.Gaming.Input.dll!7156757B: (caller: 71568E27) ReturnHr(5) tid(cf0) 8685C003 onecoreuap\xbox\devices\api\winrt\pnpapiwrapper.cpp(385)\Windows.Gaming.Input.dll!7156757B: (caller: 71568E27) ReturnHr(6) tid(cf0) 8685C003 'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\Windows.Devices.Sensors.dll'. Cannot find or open the PDB file.
    onecoreuap\xbox\devices\api\winrt\pnpapiwrapper.cpp(385)\Windows.Gaming.Input.dll!7156757B: (caller: 71568E27) ReturnHr(7) tid(cf0) 8685C003 onecoreuap\drivers\mobilepc\sensors\convergence\services\broker\client\simpledeviceorientationrpcclient.cpp(252)\Windows.Devices.Sensors.dll!68B4C538: (caller: 68B4B883) Exception(1) tid(ac0) 8007139F The group or resource is not in the correct state to perform the requested operation.
    Exception thrown at 0x76DF2502 in SPEAR.exe: Microsoft C++ exception: wil::ResultException at memory location 0x013FDF70.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\ClipboardServer.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\rmclient.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'C:\Windows\System32\ntmarta.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Loaded 'U:\Users\DefaultAccount\AppData\Local\DevelopmentFiles\SPEARVS.Release_Win32.mew9\libSkiaSharp.dll'. Cannot find or open the PDB file.
    'SPEAR.exe' (Win32): Unloaded 'U:\Users\DefaultAccount\AppData\Local\DevelopmentFiles\SPEARVS.Release_Win32.mew9\libSkiaSharp.dll'
    Exception thrown at 0x76DF2502 in SPEAR.exe: Microsoft C++ exception: Il2CppExceptionWrapper at memory location 0x0230F438.
    Exception thrown at 0x76DF2502 in SPEAR.exe: Microsoft C++ exception: Il2CppExceptionWrapper at memory location 0x0230F578.
    Exception thrown at 0x76DF2502 in SPEAR.exe: Microsoft C++ exception: Il2CppExceptionWrapper at memory location 0x0230F5B8.
    The thread 0xfb4 has exited with code 0 (0x0).
    The thread 0xfb0 has exited with code 0 (0x0).
    The thread 0x534 has exited with code 0 (0x0).
     
  2. Unity_Wesley

    Unity_Wesley

    Unity Technologies

    Joined:
    Sep 17, 2015
    Posts:
    558
    What is the file structure in your project? When I use native dlls, I put a plugins folder in the Assets folder of the project and have a folder for each config of the dll. Just curious does the native dll support UWP apps, and what does the dll do?

    Just curious after looking at the package it looks like it only supports .NET 2.0 and 1.3, are you using the correct backend of .NET?
     
    Last edited: Apr 16, 2019
  3. mikewarren

    mikewarren

    Joined:
    Apr 21, 2014
    Posts:
    109
    Thanks for taking a look. Really.

    Assets/SVG/Skia/Plugins/SkiaSharp.dll (managed)
    Assets/SVG/Skia/Plugins/SkiaSharp.Extended.Svg.dll (managed)
    Assets/SVG/Skia/Plugins/x64/libSkiaSharp.dll (native x64)
    Assets/SVG/Skia/Plugins/x86/libSkiaSharp.dll (native x86)

    The libSkiaSharp.dll libraries are tagged as x64 and x86 in the Editor.

    upload_2019-4-16_15-29-45.png

    The SkiaSharp library is a 2D graphics API. I believe that the guts of the library are in libSkiaSharp (native) and that the SkiaSharp.dll is likely a wrapper on top of it. The SkiaSharp.Extended.Svg.dll library adds support for SVG graphics / documents.

    Editor 2019.1.0f2
    Scripting runtime: .NET 4.x Equivalent
    Scripting Backend: IL2CPP
    Api Compatibility Level: .NET 4.X (I'd tried .Net Standard 2.0, but couldn't get that to work either)

    Inspired by this blog.
    http://blog.zarfhome.com/2017/08/using-skiasharp-in-unity.html

    I don't have a clue why it doesn't run on the HoloLens. I can build and test a Release/x86 version deployed to my local machine, but not the HoloLens or the HoloLens Emulator. The error I get in the developer console is that it can't find to native libSkiaSharp library. I'm lost..

    Happy to provide a sample package if your interested in looking it over.
     
  4. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,680
    Sounds like you look the Windows Desktop DLLs from their package rather than UWP ones. Looking at that NuGet package, there are separate native DLLs for different platforms:

    upload_2019-4-16_17-5-13.png

    Note that even if it runs fine on your local machine, it will fail Windows app certification since you're not allowed to use Windows Desktop DLLs in a UWP app.

    Try taking the native DLLs from win10-x86 folder.
     
  5. mikewarren

    mikewarren

    Joined:
    Apr 21, 2014
    Posts:
    109
    FWIW, I've been using the 1.60 version of skiasharp as that is the version of skiasharp.svg that's available, and it's closer to what Andrew Plotkin was using in his blog entry.

    I'd tried the (v1.60) win10 versions of the runtime, but couldn't get them to work at all. Andrew Plotkin had similar trouble and used the versions labeled win-7. Those worked for me in the editor and UWP on my local (win 10) machine.

    I guess I must have some fundamental misunderstandings about the relationships between the variants of .net (framework, core, standard), Windows 10, uwp framworks/platforms and the Unity scripting backends and API compatibility levels. Is there any good reference material you might suggest?

    Can you clarify your statement on DLLs in a UWP app failing? I thought the point of UWP apps was that they could run on any Windows platform. Are you saying you can't using native libraries on UWP apps? Or, are you saying that there are dlls (native?) just for desktop and those won't work on non-desktop (Hololens?) platforms. (Even if they're the same architecture [x86]?)

    I've uploaded my sample here if you're interested enough to take a look.
    https://psu.box.com/s/2qbrw3gui3oqo8h3icmv4g9mvuk3rkaa

    I've left the sample in the configuration that seemed to work the most (Editor, standalone player, UWP local machine) for me. The nuget packages are in there as well.

    The SkiaSharp.Extended.Svg (v1.60.0) dll is from .netstandard1.3 (I thought HoloLens supported that)
    The SkiaSharp (v1.60.0) is also from .netstandard1.3.. There's a uap10.0 one as well. Again, I thought the HoloLens supported .net standard 1.3.
    The libSkiaSharp.dll (v.1.60.0) come from the Win7 x64/x86 runtimes. The win-10 versions didn't work for me, but I may have had an issue somewhere else.

    Appreciate the effort. If anyone else figures it out, please post here. I clearly am not getting something. There's been some similar discussion on the HoloLens here.
    https://forum.unity.com/threads/what-net-stack-for-uwp-hololens.522214/
     
    Last edited: Apr 17, 2019
  6. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,680
    Yes, UWP apps can run on any Windows platform. What makes them UWP apps is that they are compiled against Windows SDK as UWP apps.

    When you compile a DLL, you can choose whether it's compiled for UWP or for just desktop. The ones compiled for UWP will only work in UWP apps (on any device), while the ones for desktop will work on any apps on desktop devices.

    When you said win-10 versions didn't work, did you test it inside UWP app or in the editor? Did you include all the DLLs in that folder into the Unity Project?
     
  7. mikewarren

    mikewarren

    Joined:
    Apr 21, 2014
    Posts:
    109
    @Tautvydas-Zilys
    Thank you!!!! I had some limited success!

    I've been testing in the Editor, local machine, emulator, and HoloLens (if the emulator works). I tried a bunch of different configurations and kind of lost my way.

    The SkiaSharp SVG package only has libraries for netstandard1.3, netstandard2.0, and portable-net45+win8+wp8+wpa81. I thought I'd read that the HoloLens doesn't support netstandard2.0 and net45 is .Net framework (right?), so I chose netstandard1.3.

    SkiaSharp has more (managed) libraries including .netstandard1.3, so I think I'd been using that to match the SVG package. I looked again today and it has a uap10.0 library as well. I used the uap10.0 for the SkiaSharp managed library and the native (libSkiaSharp) dlls and it works locally deployed, in the emulator and on the device. Not in the Editor, but that jives as the Editor isn't a UWP app?

    So, my issue is that SkiaSharp (.netstandard1.3) isn't compatible with the win10-x86/uap10.0 library? So, what if I wanted to make a stand alone player (non UWP) on Windows 10. The only win10-x86 native libraries are uap10.0. Is that why Andrew Plotkin was forced to use the win7 runtimes?
     
  8. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,680
    Yes, you'd use Windows 7 libraries. Keep in mind that Windows libraries in general are forward compatible, so their version specifier means "minimum supported OS version". If it says it's win7 runtime, it will run on Windows 7, Windows 8, Windows 8.1, Windows 10 and any future version of Windows that comes out.

    For UWP libraries, obviously the minimum supported version is Windows 10, since there was no UWP before Windows 10.

    Lastly, in Unity you can specify which platforms every single DLL should be included for. See this: https://docs.unity3d.com/Manual/PluginInspector.html