Libsodium-net - Невозможно загрузить библиотеку libsodium.dll.

Я установил Libsodium-net через NuGet и могу включить Sodium в свои классы, но когда я пытаюсь запустить его, я получаю

Исключение типа System.DllNotFoundException произошло в Sodium.dll, но не было обработано в пользовательском коде.

Дополнительная информация: Невозможно загрузить DLL libsodium.dll: указанный модуль не найден. (Исключение из HRESULT: 0x8007007E)

Я просто пытаюсь запустить образец кода из документации gitbooks https://bitbeans.gitbooks.io/libsodium-net/content/password_hashing/index.html

const string PASSWORD = "Correct Horse Battery Staple";
const string SALT = "qa~t](84z<1t<1oz:ik.@IRNyhG=8q(o";
const long OUTPUT_LENGTH = 512;

//this will produce a 512 byte hash
var hash = PasswordHash.ScryptHashBinary(PASSWORD, SALT,      PasswordHash.Strength.Medium, OUTPUT_LENGTH);

person Question    schedule 20.05.2016    source источник


Ответы (2)



У меня тоже есть этот. Первая часть решения заключалась в том, чтобы сделать, как это сделал @NiklasEkman, добавив каталог в переменную PATH.

Но я получил ту же ошибку при развертывании в нашей среде контроля качества. Потратив несколько часов на возня с разрешениями, пытаясь выяснить, находятся ли библиотеки в правильном каталоге, и тому подобное, я наткнулся на этот пост: https://mspcontrol.org/forums/topic/add-user-error-unable-to-load-dll-libsodium-64-dll/#post-4765.

Вам необходимо установить Visual C ++ Redistributable для Visual Studio 2015 (13 МБ) https://www.microsoft.com/en-us/download/details.aspx?id=48145

В конце концов, это решило проблему для меня.

person Igor    schedule 13.07.2017
comment
Пара вещей, которые меня зацепили: ... 1) Вы должны установить ту же цель распространяемого пакета Visual C ++, что и ваш процесс, x64 или x86. Обратите внимание, что x86 требуется, если вы работаете в пуле приложений ASP.NET с включенным параметром «Включить 32-разрядные приложения» .... и 2) вам необходимо перезапустить IIS (или, возможно, только пул приложений) после установки распространяемого пакета. . - person Jordan Rieger; 25.01.2018
comment
Кроме того, поскольку для этой библиотеки может потребоваться установка отдельной зависимости (то есть не обычного развертывания XCOPY), я думаю, будет справедливо сказать, что может быть более практичным просто скопировать libsodium.dll и libsodium-64.dll в C: \ Windows \ System32 или C: \ Windows \ SysWOW64 вместо того, чтобы возиться с переменной среды PATH. Это будет зависеть от ваших конкретных требований к развертыванию, но для меня это был лучший вариант. - person Jordan Rieger; 25.01.2018
comment
Распространяемый компонент Visual C ++ для Visual Studio 2017 заменил версию 2015 года. Думаю, все включено, но у меня это решение не работает. - person BluE; 26.10.2018