Nous avons récemment mis à niveau tous nos projets VS2008 vers VS2010. Notre base de code cible toujours la version 3.5 du framework, mais je suis sûr que la plupart d'entre vous savent que les projets de test doivent être mis à niveau vers la version 4.0 du framework.ReflectionTypeLoadException pour Microsoft.Web.Administration exécutant le projet de test dans VS2010
Nous avons un ensemble particulier de tests qui ne fonctionnent pas maintenant que le projet de test cible le framework 4.0. Ces tests testent tous le code qui effectue une sorte de tâche de réflexion. Grâce à un peu de débogage, j'ai réussi à réduire le problème.
Pour une raison quelconque dans le projet de test mis à jour le code suivant:
AppDomain.CurrentDomain.GetAssemblies();
renvoie une référence à "Microsoft.VisualStudio.Enterprise.AspNetHelper". Si je puis appeler
GetTypes()
sur cet ensemble, je reçois un ReflectionTypeLoadException disant qu'il ne peut pas charger l'assemblage « Microsoft.Web.Administration ». Il me semble donc qu'il y a un type dans "Microsoft.VisualStudio.Enterprise.AspNetHelper" qui hérite ou a une référence à un autre type dans Microsoft.Web.Administration. J'ai fait un peu de lecture et de réaliser la DLL d'administration fait partie de IIS7. Je développe sur XP et n'ai pas installé IIS7.
Ma vraie question est - pourquoi Microsoft.VisualStudio.Enterprise.AspNetHelper dans mon domaine d'application dans les tests VS2010, mais pas dans les tests VS2008? Créer une application de console simple qui fait la même chose ne semble pas être un problème - seulement avec des projets de test. Comment puis-je contourner cela?