2016-09-26 3 views
2

모든 기능은 .NET Framework 레지스트리 키 AllowStrongNameBypass이 설정된 컴퓨터에서 작동합니다. 그러나 배포 된 환경에서는 AllowStrongNameBypass을 사용하지 않도록 설정해야합니다.강력한 이름의 바이너리가 포함 된 CefSharp

우리는 CefSharp.BrowserSubProcess.exe과 그 관리되지 않는 종속성이 Strong-Named (CefSharp를 직접 설치하지 않고)해야합니다. 테스트로

, 우리는 ildasm.exe를 사용하여 CefSharp.BrowserSubProcess.exe를 분해하고 ilasm.exe를 사용하여 재 조립하고 생성 된 키를 sn.exe를 사용하여 어셈블리에 강력한 이름 키에게 자신을 포기했습니다. 죄송하지만 MethodAccessException으로 실패했습니다.

어셈블리가 Strong-Named이거나이 문제점을 해결할 수있는 CefSharp 버전이 있습니까?

+0

나는 NuGet에서 v51.0.0를 설치하고'SN -T "[DLL]"'및 CefSharp.BrowserSubProcess'를 포함하여 내가 체크 DLL의의를 달렸다. exe', 강력한 이름을했다. 귀하의 버전이'MethodAccessException'이 발생하는 이유를 조사하지 못했다면이 게시물을 발견했습니다 : http://stackoverflow.com/questions/10738008/accessing-newly-signed-third-party-dll-gives-error – dukedukes

+0

@dukedukes v51.0.0 바이너리에서 볼 수있는 것은'sn.exe -Tp CefSharp.BrowserSubProcess.exe' 명령은 공개 키를 표시합니다 ('ildasm '에서도 볼 수 있습니다). 'sn.exe -vf CefSharp.BrowserSubProcess.exe' 명령은 다음 오류를 반환합니다.'어셈블리를 확인하지 못했습니다 - 'CefSharp.BrowserSubprocess.exe'어셈블리에 대해 강력한 이름 유효성 검사에 실패했습니다. – Fizz

+0

''sn -vf CefSharp .BrowserSubProcess.exe'는 지금 당장 똑같은 것을 보았지만 32 비트, 64 비트 만 올바르게 검증되었습니다. 나는 sn.exe의 32 비트와 64 비트 버전을 모두 시도했다. 옵션은 CefSharp GitHub 레포에서 사용할 수있는'CefSharp.snk' 키를 사용하여 어셈블리를 종료 한 다음이 문제가있는 각 어셈블리에 대해 반복 할 수 있습니다. – dukedukes

답변

1

CefSharp에는 일부 잘못된 강력한 명명 된 어셈블리가있는 것 같습니다. @Fizz가 32 비트 플랫폼에서 CefSharp.BrowserSubProcess.exe에 대한 빌드 빌드 단계를 지적한 이유는이 때문입니다.

CefSharp GitHub 레포에서 사용할 수있는 CefSharp.snk 키를 사용하여 문제가있는 어셈블리를 다시 서명하십시오. 다음 명령으로 다시 가입 할 수 있습니다 :

sn.exe -R CefSharp.BrowserSubProcess.exe [CefSharp key]

관련 문제