I have a .Net Standard project which references a native dll, which I've built for all targets.
I then published the project on a private nuget feed, using a nuspec along the lines of:
<?xml version="1.0" encoding="utf-8"?>
<package>
<metadata>
...
</metadata>
<files>
<file src="..\bin\NetStandard20\Managed.dll" target="lib\netstandard2.0" />
<file src="..\bin\NetStandard20\Managed.xml" target="lib\netstandard2.0" />
<file src="..\bin\2017\Win32\Release\Native.dll" target="build\netstandard2.0\x86" />
<file src="..\bin\2017\x64\Release\Native.dll" target="build\netstandard2.0\x64" />
<file src="..\bin\2016\linux-x64\Release\Native.dll" target="build\netstandard2.0\linux-x64" />
<file src="..\bin\2016\osx-x64\Release\Native.dll" target="build\netstandard2.0\osx-x64" />
<file src="shared\Core\build\Managed.targets" target="build\netstandard2.0\Managed.targets" />
<file src="shared\Core\lib\Managed.config" target="lib\netstandard2.0" />
</files>
</package>
Now when I install that nuget package to a .Net Core App running on windows 10, and I run the app targeting x86 I get an error:
Unhandled Exception: System.DllNotFoundException: Unable to load DLL 'Native.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
The strange thing is, that if I change the app to a .Net Framework app, targeting the same architecture, everything runs fine.
Does anyone have any ideas why this might be?