2015-12-29 3 views
2

Для меня это никогда не было проблемой, прежде чем я установил пакет Newtonsoft.Json используя DNU (dnu install Newtonsoft.Json), который добавил пакет к проекту и написал запись в project.json в "Newtonsoft.Json": "8.0.1" под зависимых узлов.System.DllNotFoundException: Не удается загрузить DLL «libuv»

dnu build прошло успешно после того, как пакет был установлен. Теперь, когда я запустил команду dnx web, появилась ошибка!

Вот полный выход:

{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) 

Я понятия не имею, как я могу избавиться от этого!

+0

Я сомневаюсь, что есть прямая связь. Какую версию dnx и пустельгу вы используете? – Thomas

+1

Вы работаете на ОС без окон? Вы установили libuv? –

ответ

2

В одном из пакетов отсутствует документация Libuv.

Для OSX вы можете решить, скопировав отсутствующий файл командой copy.
использовать следующую команду

ф /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/

+0

Я не думаю, что libuv отсутствовал int rc1-final Kestrel package. Если это было в вашем случае, попробуйте очистить кэш пакетов и снова восстановить. Неправильное расположение, в котором вы копируете dylib. Этот путь /Users//.dnx/packages/Microsoft.AspNet.Server.Kestrel/1.0.0-rc1-final/runtimes/osx/native/libuv.dylib является правильным местом. Вы можете узнать больше о том, как собственные библиотеки загружаются в aspnet в моем сообщении в блоге по этой теме: http://blog.3d-logic.com/2015/11/10/using-native-libraries-in-asp-net -5/ – Pawel

1

Возможно, у вас устаревшая библиотека 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/ 
2

Если вы используете «Любой процессор» Попробуйте изменить сборки платформы вашего проекта на x64 или x86. У меня есть эта проблема при использовании «Any CPU» и ее изменение для меня. Для того, чтобы сделать следующее:

  1. Щелкните правой кнопкой мыши на вашем проекте VS
  2. Нажмите на свойства
  3. Перейдите в раздел «Сборка» на вкладке.
  4. Selec ваше значение в «целевых Plataform»
+0

Это было мое дело. x64/x86 работает, но «Any CPU» этого не делает. – Eric

Смежные вопросы