2010-02-24 7 views
4

Je travaille actuellement sur another issue dans mon projet ASP.NET MVC. Afin de mieux comprendre ce qui se passe dans la base de code, j'ai décidé de faire référence au projet de code source ASP.NET MVC dans mon propre projet en ajoutant le fichier de solution à mes références. Lorsque je l'ai fait, j'ai commencé à recevoir des erreurs HTTP 404.Comment résoudre l'ambiguïté entre ma DLL de projet et une DLL dans le GAC?

Il se trouve juste que j'avais un point d'arrêt sur la méthode OnException() de la HandleErrorAttribute, sinon cela aurait pu prendre beaucoup de temps pour trouver le problème réel. Quand je passe la souris sur le paramètre filterContext dans l'appel de méthode OnException, je reçois cette description Exception:

 The type 'System.Web.Mvc.ViewMasterPage' is ambiguous: 
     it could come from assembly [path to assembly in GAC] 
     or from assembly [path to assembly in my project]

L'assemblage dans le GAC est là parce que j'ai installé le ASP.NET MVC 2.0 RC2 release.

Comment puis-je résoudre au mieux cette ambiguïté?

Répondre

3

System.Web.Mvc est référencé dans Web.Config, dans la section <Compilation><Assemblies>. Dans mon application, cette entrée a un attribut de jeton de clé publique.

J'ai résolu le problème en supprimant l'attribut PublicKeyToken.

donc ceci:

<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, 
    PublicKeyToken=31BF3856AD364E35"/> 

devient ceci:

<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral"/> 

Apparemment, Visual Studio ne peut pas trouver l'ensemble signé dans le GAC lorsque le PublicKeyToken manque, il est forcé d'utiliser la montage de projet local.

1

Je ne suis pas sûr, mais peut-être votre réponse réside dans la balise assemblyBinding de votre config: http://msdn.microsoft.com/en-us/library/twy1dw1e.aspx

+0

System.Web.Mvc n'est pas référencé dans AssemblyBinding, mais * est * référencé dans Compilation/Assemblies. Je pense que je l'ai résolu. Merci pour l'aide. +1 –

Questions connexes