2011-11-11 2 views
2

Dans mon projet, j'ai besoin d'utiliser simultanément Castle.Windsor et Moq dlls. Windsor exige que Castle.Core soit également référencé dans le projet.Comment résoudre Castle.Windsor et les conflits de version MoQ pour Castle.Core assembly

problème commence lorsque je tente d'utiliser des méthodes de Castle.Core: Castle.DynamicProxy.Generators.AttributesToAvoidReplicating.Add(...);

problème1: Si je Moq.dll du dossier NET40, je me suis construit erreur « Le type « Castle. DynamicProxy.Generators.AttributesToAvoidReplicating 'existe dans' ... \ Windsor \ dotNet40 \ Castle.Core.dll 'et' ... \ moq \ NET40 \ Moq.dll ' »

Problem2: Si je utilisez Moq.dll à partir de "NET40-RequiresCastl e "dossier, qui est logiquement dans ma situation, j'ai eu conflit de versions - Moq.dll utilise Castle.Core, Version = 2.5.0.0, mais Windsor utilise Castle.Core, Version = 2.5.1.0

+4

Moq est utilisé pour le test unitaire. Pendant les tests unitaires, vous ne devriez pas utiliser votre conteneur IoC (Windsor). Quel est le cas d'utilisation que vous devez utiliser Windsor dans vos tests unitaires avec Moq? Ou utilisez-vous Moq dans le code de production avec Windsor? – PatrickSteele

+0

Merci, Patrick, pour votre commentaire. J'ai résolu mon problème - voir la réponse. – Andris

Répondre

8

Problème peut être résolu utilisant la liaison d'assemblage - App.config:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
    <assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" /> 
    <bindingRedirect oldVersion="1.0.0.0-2.5.0.0" newVersion="2.5.1.0" /> 
    </dependentAssembly> 
</assemblyBinding> 
+1

maintenant c'est un morceau que vous ne voyez pas très souvent. +1 pour me le rappeler :) – quetzalcoatl

Questions connexes