У меня есть проект .Net Standard, который ссылается на нативный dll, который я построил для всех целей.
Затем я опубликовал проект в частном фиде nuget, используя nuspec в виде:
<?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>
Теперь, когда я устанавливаю этот пакет nuget в приложение .Net Core, работающее в Windows 10, и запускаю приложение, ориентированное на x86, я получаю сообщение об ошибке:
Необработанное исключение: System.DllNotFoundException: Невозможно загрузить DLL 'Native.dll': указанный модуль не найден.(Исключение из HRESULT: 0x8007007E)
Странно то, что если я изменю приложение на приложение .Net Framework, ориентированное на ту же архитектуру, все будет работать нормально.
У кого-нибудь есть идеи, почему это может быть?