Asp.net core System.DllNotFoundException:无法加载DLL';libuv&x27;

Asp.net core System.DllNotFoundException:无法加载DLL';libuv&x27;,asp.net-core,dnx,dnx50,Asp.net Core,Dnx,Dnx50,对我来说,在我使用dnu(dnu install Newtonsoft.Json)安装Newtonsoft.Json包之前,这从来都不是一个问题,dnu将包添加到项目中,并在project.Json中编写一个条目,作为依赖项节点下的“Newtonsoft.Json”:“8.0.1” 安装程序包后,dnu build成功运行。现在,当我运行命令dnxweb时,突然出现了以下错误 以下是完整的输出: {lamb} dnx web System.DllNotFoundException: Unable

对我来说,在我使用dnu(
dnu install Newtonsoft.Json
)安装Newtonsoft.Json包之前,这从来都不是一个问题,dnu将包添加到项目中,并在
project.Json
中编写一个条目,作为依赖项节点下的
“Newtonsoft.Json”:“8.0.1”

安装程序包后,dnu build成功运行。现在,当我运行命令
dnxweb
时,突然出现了以下错误

以下是完整的输出:

{lamb} dnx web
System.DllNotFoundException: Unable to load DLL 'libuv': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
   at Microsoft.AspNet.Server.Kestrel.Networking.Libuv.NativeMethods.uv_loop_size()
   at Microsoft.AspNet.Server.Kestrel.Networking.Libuv.loop_size()
   at Microsoft.AspNet.Server.Kestrel.Networking.UvLoopHandle.Init(Libuv uv)
   at Microsoft.AspNet.Server.Kestrel.KestrelThread.ThreadStart(Object parameter)

我不知道怎么才能摆脱这个

其中一个包中缺少Libuv dll

对于OSX,您可以通过copy命令复制丢失的文件来解决问题。
使用以下命令


cp/Users/.dnx/packages/Microsoft.AspNet.Server.Kestrel/1.0.0-rc1-final/runtimes/osx/native/libuv.dylib/Users/.dnx/packages/Microsoft.AspNet.Server.Kestrel/1.0.0-rc1-final/lib/dnxcore50/

也许您有过时的libuv库。 您可以尝试从源代码构建和安装它。这在fedora-x64 linux上适用:

# dnf install automake libtool wget
$ wget http://dist.libuv.org/dist/v1.8.0/libuv-v1.8.0.tar.gz
$ tar -zxf libuv-v1.8.0.tar.gz
$ cd libuv-v1.8.0
$ sh autogen.sh
$ ./configure
$ make
# make install
# cd /usr/local/lib
# cp libuv.* /usr/lib64/
# cp pkgconfig/libuv.pc /usr/lib64/pkgconfig/
如果您正在使用“任何CPU”,请尝试将项目的构建平台更改为x64或x86。当我使用“任何CPU”并将其更改为解决方案时,我会遇到这个问题。要执行以下操作:

  • 右键单击VS中的项目
  • 单击“属性”
  • 转到“构建”选项卡
  • 在“Plataform目标”中选择您的价值

  • 我怀疑两者之间有直接关系。您运行的是哪个版本的dnx和kestrel?您运行的是非windows操作系统吗?你安装了libuv吗?我不认为libuv缺少int rc1最终Kestrel包。如果您的情况是这样,请尝试清理包缓存并再次还原。将动态库复制到的位置不正确。此路径/Users//.dnx/packages/Microsoft.AspNet.Server.Kestrel/1.0.0-rc1-final/runtimes/osx/native/libuv.dylib是正确的位置。您可以在我关于这个主题的博客文章中阅读更多关于如何在aspnet中处理本机lib的内容:这就是我的案例。x64/x86可以工作,但“任何CPU”都不能。