2012-10-16 9 views
1

Couchbase 클라이언트를 사용하는 동안 Enyim.Caching.dll에 대한 종속성을 해결하는 데 문제가 있습니다. NuGet을 통해 dll을 다운로드하고 프로젝트에서 참조했습니다. 솔루션은 다운로드 한 어셈블리 Enyim.Caching, Version = 2.12.0.0, Culture = neutral, PublicKeyToken = 05e9c6b5a9ec94c2으로 잘 컴파일됩니다. 하지만 Runtime에서 Couchbase는 Enyim.Caching, Version = 2.12.0.0, Culture = neutral, PublicKeyToken = cec98615db04012e을 찾고 있기 때문에 예외가 발생합니다.Enyim.Caching의 종속성을 해결할 수 없습니다.

다른 버전의 다른 dll이 필요하지만 다른 PublicKey가 필요한 이유를 알 수 없습니다.

또한 Cant get the couchbase .net memcache client to run, complains it's strong name validation failed에 설명 된 솔루션을 사용하여 ns.exe를 사용하여 strongname 요구 사항을 제거했습니다. 그러나 그것은 운동하지 못했습니다.

나를 도와 줄 수 있습니까?

+0

당신이 스택 추적을 게시 할 수 없습니다 "/ CommonProperties.targets를 구축"처럼 일? Nuget 빌드가 모두 서명되어 있으므로 강력한 이름 유효성 검사에 대해 걱정할 필요가 없습니다. 또한, 어떤 버전의 Nuget을 사용하고 있습니까? –

+0

슬프게도, 나는 당신의 대답을 읽기 전에 stacktrace로 모든 로그 파일을 삭제했다. (그러나 나는 아래에 설명 된 해결책을 통해 문제를 해결할 수 있었다. – Sergei

답변

1

결국 couchbase-net-client 프로젝트의 Readme.mdown 파일에있는 설명을 사용하여이 문제를 해결할 수있었습니다. 두 가지 방법으로 문제를 해결할 수 있습니다. sn.exe를 통해 강력한 이름 확인을 제거하거나 어셈블리 서명을 전혀 제거하지 말아야합니다.

어셈블리 서명이 필요하지 않으므로 두 번째 방법을 선택했습니다. 원본을 처음부터 다시 작성하고 NuGet이 작성한 모든 항목을 제거하고 수동으로 모든 어셈블리에 대한 참조를 추가했습니다. 그리고 그것은 매력 :

0

당신이 파일에서 "public_key.snk"와 노드를 삭제할 수 있습니다

<!-- 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> --> 
관련 문제