J'ai mis à jour notre logiciel de vs2008/.net 3.5 à vs2010/.net 4.0. Toutes les bibliothèques tierces (les plus pertinentes: nhibernate 2.1.2 ou 3.0.0, nunit 2.5.2) sont toujours compilées en utilisant vs2008. Quand j'exécute les tests unitaires pour la construction de débogage de notre logiciel, tout fonctionne bien. Sur la version release, nunit signale des exceptions sur 33 des 228 tests: System.InvalidProgramException : Common Language Runtime detected an invalid program.
Cela arrive toujours sur les mêmes tests, à la fois pour nunit-console et pour le coureur de test Resharper 5.0. Quand je les lance en utilisant la commande "debug unit-tests" de Resharper, tous les tests passent. Cela ne fait aucune différence si je lance les tests individuellement ou par lots. L'exception se produit toujours à proximité des appels de requête nhibernate, mais je ne peux pas le dire avec certitude, car la trace de la pile de build de version est quelque peu éparse. Il ne dépend pas du générateur de bytecode nhibernate, la même exception apparaît pour castle et linfu. Est-ce que quelqu'un a une idée de comment déboguer cela?nunit lors de la création de la version: "Common Language Runtime a détecté un programme non valide."
Modifier: Supprimer Spring.NET n'a eu aucun effet sur ce problème.
Edit: Lorsque je passe la sortie de débogage de configuration de version à complète au lieu de pdb seulement et désactiver le Code optimize case, l'exception disparaît. Les deux paramètres sont obligatoires, si je ne change que l'un d'entre eux, le bug persiste. Cependant, un ensemble différent de tests échoue si je n'en change qu'un. Toutes les bibliothèques de classes sont compilées pour Any CPU.
Pouvez-vous vérifier si les configurations de version et de débogage du projet diffèrent? J'ai vu des cas, où quelqu'un ajoute X à la configuration de débogage ... laissant le config de sortie stale .. – Gishu
@Gishu: J'ai été en mesure de tracer la différence à la sortie de débogage et optimiser les paramètres de code - aucun autre paramètre semble affecter ce problème. –
Hmm .. Pas de direction définie ici. à partir de quelques recherches superficielles, il semble être lié à des appels dll tiers. http://bit.ly/g3iwnK Essayez d'obtenir le stacktrace et de poster sur le bon forum MS - semble être une zone de niche (pas exactement le point fort de SO) – Gishu