C# 本机dll可以';找不到.Net Core,但可以找到.Net Framework

C# 本机dll可以';找不到.Net Core,但可以找到.Net Framework,c#,.net-core,interop,C#,.net Core,Interop,我有一个.Net标准项目,它引用了我为所有目标构建的本机dll 然后,我使用nuspec在一个私有的nuget提要上发布了该项目,内容如下: <?xml version="1.0" encoding="utf-8"?> <package> <metadata> ... </metadata> <files> <file src="..\bin\NetStandard20\Managed.dll" tar

我有一个.Net标准项目,它引用了我为所有目标构建的本机dll

然后,我使用nuspec在一个私有的nuget提要上发布了该项目,内容如下:

<?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软件包安装到运行在windows 10上的.Net Core应用程序中,并运行针对x86的应用程序时,我收到一个错误:

未处理的异常:System.DllNotFoundException:无法加载DLL “Native.dll”:找不到指定的模块。 (来自HRESULT的异常:0x8007007E)

奇怪的是,如果我将应用程序更改为.Net Framework应用程序,针对相同的体系结构,那么一切都可以正常运行


有人知道为什么会这样吗?

我想,在您的项目中,针对哪种CPU体系结构存在冲突。win7-x86行指示NuGet使用x86版本的Native.DLL,AnyCPU指示应用程序编译为AnyCPU,这意味着该进程可以以x64运行。这种不匹配很可能是错误的根源。

恐怕不是这样,没有冲突。谢谢