SPIRV-Cross.NET
SPIRV-Cross.NET copied to clipboard
Unable to load native library
This is awesome - thank you so much for creating this library!
As far as I can tell, it's not loading the native library correctly though. When I run SPIRVCross.Test, I get this exception:
Unhandled exception. System.TypeInitializationException: The type initializer for 'SPIRVCross.SPIRV' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'spirv-cross-c-shared.dll' or one of its dependencies: The specified module could not be found. (0x8007007E)
at System.Runtime.InteropServices.NativeLibrary.LoadFromPath(String libraryName, Boolean throwOnError)
at System.Runtime.InteropServices.NativeLibrary.Load(String libraryPath)
at SPIRVCross.LibraryLoader.LoadLocalLibrary(String libraryName) in C:\Users\Tim Jones\Downloads\SPIRV-Cross.NET-main\Src\SPIRVCross\SPIRV.cs:line 57
at SPIRVCross.SPIRV.LoadNativeLibrary() in C:\Users\Tim Jones\Downloads\SPIRV-Cross.NET-main\Src\SPIRVCross\SPIRV.cs:line 17
at SPIRVCross.SPIRV..cctor() in C:\Users\Tim Jones\Downloads\SPIRV-Cross.NET-main\Src\SPIRVCross\Generate\Commands.cs:line 17
--- End of inner exception stack trace ---
at SPIRVCross.SPIRV.spvc_context_create(spvc_context* context) in C:\Users\Tim Jones\Downloads\SPIRV-Cross.NET-main\Src\SPIRVCross\Generate\Commands.cs:line 96
at SPIRVCross.Test.Program.Main(String[] args) in C:\Users\Tim Jones\Downloads\SPIRV-Cross.NET-main\Src\SPIRVCross.Test\Program.cs:line 62
I think this is because SPIRVCross.csproj needs to include some extra stuff to copy the native dlls to the output folder. For example, Vortice.Dxc includes a .targets file in the csproj:
https://github.com/amerkoleci/Vortice.Windows/blob/7481411e43659c6e4d25c52b705a7eadcee2cfc2/src/Vortice.Dxc/Vortice.Dxc.csproj#L28-L31
And that .targets file looks like this:
https://github.com/amerkoleci/Vortice.Windows/blob/7481411e43659c6e4d25c52b705a7eadcee2cfc2/src/Vortice.Dxc/build/netstandard2.0/Vortice.Dxc.targets#L6-L12
... unless I'm missing something, and it's working for you without doing that?