Si un processus charge à la fois un objet COM .NET 1.1 et un objet COM .NET 2.0, tous deux utilisant un serveur in-process, que se passe-t-il? Est-ce que quelque chose se brise avec cette configuration? Ou serait-il plus sûr de faire de l'un des objets un serveur hors processus?Que se passe-t-il si un objet COM .NET 1.1 et .NET 2.0 est utilisé dans le même processus?
Répondre
Cela dépend de ce qui est chargé en premier, car (avant .NET 4), vous ne pouvez charger qu'une version de l'environnement d'exécution dans un processus. L'objet .NET 1.1 se charge d'abord et l'objet .NET 2.0 tombe; ou l'objet .NET 2.0 se charge d'abord et l'objet .NET 1.1 fonctionne, espérons-le.
Vous devriez probablement envisager de mettre à niveau l'objet .NET 1.1 pour qu'il s'exécute sur 2.0. Si vous ne le faites pas, votre application échouera ou l'objet .NET 1.1 sera chargé dans la version 2.0.
Ouais, je peux mettre à jour _my_ component, mais je n'ai aucune idée de ce qui est en cours d'utilisation ... Je vais peut-être aller en dehors du processus de sécurité. – bdonlan
J'ai déjà rencontré ce problème avec des composants dans COM +. Si nous appelons un composant .NET 2.0 en premier, alors chaque nouvel appel (.NET 1.1 ou .NET 2.0) fonctionnera. Cependant, si le composant .NET 1.1 était le premier, alors les appels aux composants .NET 2.0 échoueraient puisque le runtime ne pourrait pas charger ces bibliothèques (message "could not find assembly"). – Fabio
Vous pouvez également mettre à niveau les deux .NET 3.5 ou 4.0. –
Les chats et les chiens, vivant ensemble ... Mass Hysteria! –