Fakes - Assembly 'Jennifer5.Fakes' with identity '[...].Fakes, [...]' uses '[...]' which has a higher version than referenced assembly '[...]' with identity '[...]'
서명이 된 어셈블리의 버전을 바꾸고 Fakes로 단위 테스트를 하다가, 그 어셈블리의 버전을 다시 이전 버전으로 바꾸는 경우 단위 테스트 프로젝트에 대한 빌드 오류가 다음과 같이 발생합니다.
CS1705 - Assembly 'MyAssembly.Fakes' with identity 'MyAssembly.Fakes, Version=1.2.3.0, Culture=neutral, PublicKeyToken=0ae41878053f6703' uses 'MyAssembly, Version=1.2.3.0, Culture=neutral, PublicKeyToken=cc862a9be44088eb' which has a higher version than referenced assembly 'MyAssembly' with identity 'MyAssembly, Version=1.2.2.9, Culture=neutral, PublicKeyToken=cc862a9be44088eb'
웬일인지, 버전이 낮은 것에서 높은 걸로 바꿨을 때는 괜찮지만 거꾸로 바꾸는 경우는 저렇게 빌드 오류가 발생합니다. 이런 경우, 굳이 낮은 버전으로 빌드를 해야 한다면 해당 단위 테스트 프로젝트의 폴더 하위에 "FakesAssemblies"로 가서 관련된 Fakes 파일을 직접 삭제해 주면 됩니다.
가령, d:\prj\MyAssembly 단위 테스트 프로젝트인 경우 d:\prj\MyAssembly\FakesAssemblies 폴더로 가서 (전부 삭제해도 되고) 오류에 연관된 Fakes 파일을 삭제해 줍니다.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]