Como incluir o libsodium.net no ASP.NET

Eu tenho um serviço Web antigo compilado em arquivos ASP.NET (usando .asmx). Eu preciso usar o sodium.net - infelizmente ele falha ao carregar o arquivo libsodium.dll dependente. Alguma idéia sobre o que eu errei?

Eu adicionei libsodium.net através do NuGet.

Renomeei a DLL de 64 bits para "libsodium.dll" (e outras convenções de nomenclatura também).

Eu tentei fazer referência libsodium.dll diretamente, mas o VS a rejeita (não é uma DLL válida). Então, eu o adicionei como "conteúdo" em vez de "copiar para saída".

Após a construção, posso ver que a pasta website / Bin contém o sódio.dll (o assembly .NET) e o libsodium.net.

Quando tento usar o libsodium.net, obtenho:

ERRO 2015-02-02 11: 14: 27,118 13798ms [41] CabinetService doRequest - Capturado: O inicializador de tipo para 'Sodium.SodiumCore' lançou uma exceção. System.TypeInitializationException: o inicializador de tipo para 'Sodium.SodiumCore' lançou uma exceção. ---> System.DllNotFoundException: Não foi possível carregar a DLL 'libsodium.dll': O módulo especificado não pôde ser encontrado. (Exceção de HRESULT: 0x8007007E) em DynamicDllInvokeType.sodium_init () em Sodium.SodiumCore..cctor () --- Fim do rastreamento da pilha de exceção interna --- em Sodium.SodiumCore.LibraryName () em Sodium.SodiumCore.LibraryName () em Sodium.SecretBox.Create (Byte [], Byte [] nonce, chave Byte []) em Macaroons.SecretBoxCryptoAlgorithm.Encrypt (chave Byte [], Byte [] plainText) em c: \ Projects \ Macaroons.Net \ Macaroons.Net \ SecretBoxCryptoAlgorithm.cs: line 58.

Portanto, ele não consegue encontrar "libsodium.dll", mesmo que esteja na pasta Bin. Também tentei remover a dependência do "sodium.net", onde após um erro de execução dizendo "falta do sódio.net" - quando o adicionei novamente, esse erro desapareceu e peguei o que estava acima (indicando o "sodium.net" carrega corretamente).

Então, abro a pasta shadow do site em "C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Arquivos temporários do ASP.NET \ cabinetservice" e procuro "sódio". O único resultado é "sodium.dll" em algumas subpastas. Não há "libsodium.dll".

Aparentemente, o ASP.NET ignora o arquivo "libsodium.dll" ao criar a cópia de sombra do site.

Também tentei adicionar o libsodium.dll (32 bits) ao C: \ Windows \ System32 e o libsodium.dll (64 bits) ao C: \ Windows \ SysWOW64. Mesmo resultado.

E eu tentei C: \ Windows \ Microsoft.NET \ assembly \ GAC_32 \ libsodium e C: \ Windows \ Microsoft.NET \ assembly \ GAC_64 \ libsodium. Mesmo resultado.

Como posso informar o ASP.NET sobre a dependência?

questionAnswers(2)

yourAnswerToTheQuestion