Depuis que nous avons commencé à mettre à niveau certains de nos projets .NET Framework 4.0, j'ai couru dans beaucoup de problèmes en ce qui concerne l'erreur suivante:Existe-t-il un moyen de décharger ou de recharger l'exécution actuellement chargée?
This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.
Il se passe maintenant avec notre application d'installation. Le programme d'installation parcourt une liste de DLL et installe ceux qui sont nécessaires sur une machine cible. Chaque assembly est chargé dans le contexte en utilisant
Assembly.LoadFile
Les premiers assemblages dans la file d'attente sont 3.5. Une fois que le programme d'installation récupère une DLL 4.0 et essaie de le charger à l'aide de Assembly.LoadFile, j'obtiens cette erreur. Il semble que le chargement de la première DLL définit le précédent pour lequel "runtime" est actuellement chargé.
Y a-t-il un moyen de décharger cette exécution actuellement chargée avant de traiter une DLL 4.0 afin d'éviter cette erreur?
Droite. L'installateur que je mentionne est notre propre application exécutable personnalisée; pas un projet d'installation de solution d'installation. Pouvez-vous configurer les conditions de lancement sur n'importe quel exécutable? – topwik
L'exécution actuelle à laquelle l'erreur fait référence, c'est l'exécution utilisée par l'application spécifique est-ce correct? – topwik
Vous devez compiler cet exécutable contre .NET 4.0. En faisant cela, il fonctionnera automatiquement sous le CLR 4.0 (si disponible) et vous pourrez charger les assemblys compilés avec .NET 4.0. –