Не удается разрешить зависимость Enyim.Caching
У меня проблема с разрешением зависимости от Enyim.Caching.dll при использовании клиента Couchbase. Я скачал dll через NuGet и сослался на них в проекте. Решение прекрасно компилируется с загруженной сборкой Enyim.Caching, Version=2.12.0.0, Culture= нейтральный, PublicKeyToken =05e9c6b5a9ec94c2. Но во время выполнения Couchbase выдает исключение, потому что ищет Enyim.Caching, Version=2.12.0.0, Culture= нейтральный, PublicKeyToken =cec98615db04012e.
Я не могу понять, почему это требует другого dll той же версии, но с другим PublicKey.
Я также попробовал решение, описанное в Cant, чтобы запустить клиент memcache counetbase.net, жалуется, что проверка строгих имен не смогла удалить требования строгих имен с помощью ns.exe. Но это не тренировка.
Может ли кто-нибудь помочь мне?
2 ответа
В конце концов мне удалось решить эту проблему, используя описание в файле Readme.mdown проекта couchbase-net-client. Говорят, что есть 2 способа решения проблемы: либо удалить проверку строгого имени через sn.exe, либо вообще удалить подпись сборки.
Я выбрал второй путь, так как мне не нужно подписывать сборку. Я восстановил исходный код с нуля, удалил каждую запись, созданную для меня NuGet, и вручную добавил ссылки на все сборки. И это сработало как шарм:)
Вы можете удалить узел с "public_key.snk" в файле "build/CommonProperties.targets"
<!-- delay sign the assembly if the PrivateKeyPath property is not specified -->
<!--<PropertyGroup Condition=" '$(PrivateKeyPath)' == '' And '$(PrivateKeyName)' == ''">
<AssemblyOriginatorKeyFile>..\public_key.snk</AssemblyOriginatorKeyFile>
<DelaySign>true</DelaySign>
</PropertyGroup> -->