2011-04-26 4 views
8

모든 어셈블리에 지연 서명이있는 프로젝트가 있습니다. 개발 기계는 sn.exe 도구를 사용하여 검증을 건너 뛰도록 설정됩니다nunit을 사용하여 지연 부호 어셈블리를 단위 테스트하는 방법

sn.exe -Vr *,PUBLIC_KEY_TOKEN_HERE 

우리가 있기 때문에 서명이 연기의 NUNIT (GUI 버전)를 사용하는 어셈블리, 테스트가 작동하지 않습니다 (모든 테스트가 실패하는)를 테스트합니다. 그러나 해당 어셈블리를 다시 서명하면 테스트가 작동합니다. 어셈블리에 다시 서명하려면 개인 공개 키 쌍 파일 (예 : mycompany.snk)이 필요하다는 것을 모두 알고 있습니다. 모든 개발자에게 mycompany.snk 파일을 제공하는 것이 좋습니다.

모든 개발자가 재출임하지 않고 또는 mycompany.snk 파일을 사용하지 않고 어셈블리를 단위 테스트 할 수있는 솔루션이 있습니까?

+1

문제는 GUI 실행기입니까? CLI 러너가 작동하지 않습니까? 내가 snook을 사용하여 검증을 건너 뛰고 CLI 러너와 함께 NUnit 테스트를 실행할 수 있기 때문에 모든 어셈블리를 동일한 작업 (지연 서명)하고 있기 때문에 물어 본다. 나는 같은 문제가 있는지 없는지 모르겠다. 그래서 나는 GUI 러너와 떨어져있다. 원하는 경우 시도해 볼 수 있습니다. – harlam357

+0

GUI 러너에 대해서만 테스트합니다. 귀하의 의견을 바탕으로, 문제는 GUI를 주자에 존재하는 것 같습니다. –

답변

3

언제든지 64 비트 버전의 Windows에서 개발 중이십니까? 얼마 전에 어셈블리에 지연 서명을했는데 단위 테스트 중에 올바르게로드되지 않은 비슷한 문제가있었습니다. 문제는 우리가 64 비트 창에서 개발했기 때문에 나타났습니다. 두 개의 sn.exe 프로그램이 있는데 하나는 32 비트 용이고 다른 하나는 64 비트 용입니다. (64 비트 버전은 bin 디렉토리 아래의 "x64"디렉토리에 있으며 Windows SDK의 32 비트 실행 파일입니다. 현재 개발 시스템에있는 것은 아닙니다. 죄송합니다. 정확한 경로를 알려 드릴 수 없습니다. 기억). 우리가하는 일은 32 비트 버전을 사용하는 "sn -Vr"명령을 사용한 다음 64 비트 버전을 사용하여 동일한 명령을 실행하면 모든 것이 작동합니다.

관련 문제