2014-04-28 5 views
0

문서를 찾을 수 없지만 강력한 명명 된 어셈블리에서만 nuget 바인딩 리디렉션 생성이 작동합니까? 나는 소수의 이름이 붙여진 우리 자신의 nuget 서버에서 가지고있는 소수의 내부 라이브러리를 가지고있다. 그러나 각각의 발행시에는 nuget에 다른 버전 번호가 dll에 대해 생성된다.약한 명명 된 어셈블리에 대한 바인딩 리디렉션을 생성하지 않는 Nuget

다른 버전 번호 때문에 해당 어셈블리를 참조하는 종속성은 런타임에 컴파일 된 버전 번호가 아닌 어셈블리를로드하지 못합니다. 이제 우리는 공용 라이브러리에 새 너겟을 퍼블리싱하는 경우, 공통 라이브러리를 참조하는 모든 누젠 패키지를 수동으로 게시해야합니다 (이전 버전과의 호환성이 있음에도 불구하고). 우리는 모든 것을 강력한 이름으로 바꾸는 과정에 있지만 현재는 기존 의사 결정으로 인해 강력한 이름이 없으므로 지금 당장의 해결 방법이 유용 할 것입니다.

답변

1

NuGet 지원이 약한 명명 된 어셈블리에 바인딩 리디렉션을 추가한다고 생각하지 않습니다. 이를 설명하는 문서는 http://blog.davidebbo.com/2011/01/nuget-versioning-part-3-unification-via.html입니다.

해결 방법은 패키지에 install.ps1을 추가하는 것입니다. 따라서 패키지 업데이트/설치 중에 install.ps1은 configs의 바인딩 리디렉션을 추가/수정합니다.

+0

실제로 ".Net에는 강력하게 서명되지 않은 어셈블리에 대한 바인딩 리디렉션"과 같은 개념이 없으므로 스크립트로도 만들 수는 없습니다. 반면에 .Net이 서명되지 않은 경우 버전 비교를 무시하므로 최신 버전이 이미로드되어 있으면 문제가 발생하지 않습니다. 그렇지 않으면 유용한 게시물. –

관련 문제