Interceptor Castle DynamicProxy ma problemy z różnymi zespołami

Mam taki scenariusz:

Używam interceptora do przechwytywania wywołań do klasy, która znajduje się wewnątrz zespołu (nazwijmy to Feature), do której odwołuje się główny projekt. Funkcja Assembly jest instalowana przez NuGet (nie jest publiczna, ale wewnętrzna) i ma odniesienie do innego zespołu (nazwijmy to Core). Główny projekt odnosi się również do Core Core. Rdzeń zawiera definicję klasy, która jest używana jako typ argumentu jednej z przechwyconych metod.

Wszystko działa dobrze, dopóki główny projekt i funkcja odnoszą się do tej samej wersji biblioteki Core. Problem pojawia się, gdy te wersje są różne i metoda przechwycona używa typów z Core jako argumentów metody.

W tej sytuacji zgłaszany jest wyjątek, który stwierdzaA strongly-named assembly is required.:

[FileLoadException: Could not load file or assembly 'Core, Version=0.2.2.30, Culture=neutral, PublicKeyToken=null' or one of its dependencies. A strongly-named assembly is required. (Exception from HRESULT: 0x80131044)] 
 Castle.Proxies.Invocations.IBasketService_Update.InvokeMethodOnTarget() +0
 Castle.DynamicProxy.AbstractInvocation.Proceed() +116
 Project.Basket.BasketServiceUpdatedInterceptor.Intercept(IInvocation invocation) in c:\(...)\Basket\BasketServiceUpdatedInterceptor.cs:20
 Castle.DynamicProxy.AbstractInvocation.Proceed() +604
 Castle.Proxies.IBasketServiceProxy.Update(ProductId productId, UInt16 quantity) +210 (...)

Tam, gdzie wersja Core 0.2.2.30 jest wersją oczekiwaną przez Feature Feature, główny projekt używa na przykład wersji 0.2.2.31. Castle DynamicProxy nie jest w stanie znaleźć Core z wersją 0.2.2.30 i to prawda, ponieważ ten dokładny zestaw nie jest instalowany w folderze bin.

Należy pamiętać, że różne wersje Core są sytuacją całkowicie normalną w naszym scenariuszu. Zespół funkcji oczekuje wersji wyższej niż określona - nie jest to wersja dokładna.

Nie jestem pewien, czy DynamicProxy powinien być mniej sztywny w swoich oczekiwaniach montażowych, muszę zaakceptować to ograniczenie. Napisałem prostą klasę proxy, aby przezwyciężyć ten problem, więc nie blokuje mnie już, ale blokuje nam korzystanie z DynamicProxy w naszych rozwiązaniach.

questionAnswers(1)

yourAnswerToTheQuestion