Qu'est-il arrivé à regtlibv12?

J'ai une installation propre de Windows 8 sur une partition, avec Visual Studio 11/2012 Professional installé et je ne peux pas trouver regtlibv12.exe à l'intérieur C:WindowsMicrosoft.NETFrameworkv4.0.30319.

Voici une capture D'écran de ma partition Windows 7, avec. Net 4.0 (et regtlibv12):

Windows 7 -. Net 4

Voici Windows 8 avec. Net 4.5 (et pas de regtlibv12):

Windows 8 -. Net 4.5

Regtlibv12 ne fait-il plus partie du framework. Net? Dois-je également installer. Net 4.0? Que se passerait-il si j'installais. Net 4.0 sur le dessus de 4,5? Je sais qu'ils vont tous les deux au même endroit sur le disque dur, et 4.5 écrase efficacement 4.0, et 4.5 vient par défaut sur Windows 8. Aurais-je besoin d'Installer 4.0, puis de réinstaller 4.5 pour récupérer regtlibv12 ?

Merci

26
demandé sur JMK 2012-10-07 18:16:25

1 réponses

, Il n'a jamais fait partie du cadre. Et il est entièrement sans papiers. Il y a cependant une rumeur très cohérente qu'il est, beaucoup de programmeurs l'ont trouvé dans leurs répertoires v2.0.50727 ou v4.0.30319 et compris qu'il pourrait résoudre les problèmes d'enregistrement. Beaucoup de messages du forum le mentionnent.

La façon exacte dont il apparaît dans ces dossiers est difficile à désosser, le seul modèle que j'ai vu est qu'il sera là lorsque vous installerez le framework vous-même. Et ne sera pas là lorsque le cadre est pré-installé sur la machine. Ce qui est quelque peu logique, il y en a plusieurs .fichiers tlb dans le répertoire framework qui doivent être enregistrés. Ils contiennent des informations de type pour les types. net [ComVisible] sur lesquels le code client peut dépendre. La manière normale d'enregistrer les bibliothèques de types ne s'applique pas à celles-ci .fichiers tlb car ils ne sont pas intégrés dans un serveur COM régulier. Avec la supposition supplémentaire que l'outil n'est pas nécessaire dans une version préinstallée de. net car le les informations d'enregistrement sont regroupées dans la configuration Windows régulière.

Si vous vous êtes mis dans une dépendance à l'outil, vous ne pouvez pas faire grand-chose au-delà de la copie du .exe à partir d'une autre machine. Ou s'attaquer à la raison pour laquelle vous devez l'utiliser de l'autre extrémité afin que vous n'en ayez plus besoin:

  • C'est une solution de contournement pour oublier d'utiliser l'option /tlb avec Regasm.EXE. Cela peut produire une erreur TYPE_E_CANTLOADLIBRARY lors de l'exécution lorsque le code client tente d'utiliser une interface COM à partir de un autre thread. La bibliothèque de types fournit les informations de type dont le marshaller standard a besoin pour marshaler les arguments de la méthode. Utilisez l'option / tlb pour corriger cela.

  • C'est une solution de contournement pour que les serveurs COM apparaissent dans le Projet + Ajouter une référence, onglet COM. Cet onglet répertorie les bibliothèques de types enregistrées. Ce n'est cependant pas une solution de contournement appropriée, sauf sur les serveurs de construction, vous pouvez compiler votre code mais vous ne pouvez pas l'exécuter car l'enregistrement n'est pas terminé. La bonne façon pour ce faire, utilisez le programme d'installation fourni par l'auteur ou en utilisant Regsvr32.exe dans un pincement afin que la bibliothèque de types et les clés CLSID soient enregistrées.

  • C'est une solution de contournement pour les serveurs COM qui n'enregistrent pas leur bibliothèque de types. Similaire à ce qui précède, mais l'enregistrement des bibliothèques de types est facultatif et n'est généralement requis que sur votre machine de développement, pas sur la machine qui exécute le serveur. La plupart des outils qui peuvent consommer des bibliothèques de types ont un moyen de les ajouter explicitement plutôt que de dépendre la clé de registre TypeLib. Tout comme L'IDE Visual Studio, vous pouvez utiliser l'onglet Parcourir à la place pour sélectionner le .fichier tlb directement.

35
répondu Hans Passant 2016-08-24 10:19:32