0 votes

Mise à niveau à la volée d'un objet COM utilisé dans une application .NET

Nous avons une application .NET en 3 niveaux, déployée, qui, pour de bonnes raisons commerciales, ne peut pas être mise à jour actuellement. Le client utilise un certain nombre de contrôles ActiveX classiques en c++ à travers le mécanisme d'interopération habituel.

Nous avons corrigé quelques bugs critiques dans l'un des contrôles ActiveX et avons besoin de déployer les correctifs à un certain nombre de clients sans réinstaller le client. Les correctifs sont autorisés, y compris pour la mise à jour des dll. Y a-t-il un moyen d'installer un dll ActiveX corrigé sans nécessiter un nouveau client? L'interface, le nom de fichier, les GUID, etc., sont tous inchangés.

J'ai essayé de remplacer simplement le dll sans succès - j'ai obtenu une variété d'erreurs assez étranges, mais il est possible que le dll ActiveX (qui est toujours en développement) soit défectueux - cela fait l'objet d'un suivi en parallèle.

Est-ce que le simple remplacement des dll devrait fonctionner? Si ce n'est pas le cas, pouvez-vous suggérer une autre approche, en dehors de reconstruire puis réinstaller le client, qui devrait fonctionner?

0voto

Patrick Points 3893

Si l'interface n'a pas changé, écraser le dll original fonctionnera.

0voto

Rory Points 13087

Que diriez-vous de vous désinscrire avant de le remplacer, puis de vous réinscrire?

regsvr32.exe /u [VOTRE DLL ICI]

puis écrasez le dll, ensuite

regsvr32.exe [VOTRE DLL ICI]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X