web-dev-qa-db-fra.com

Qu'est-il arrivé à regtlibv12?

J'ai une installation propre de Windows 8 sur une partition avec Visual Studio 11/2012 Professionnel installé et je ne peux pas trouver regtlibv12.exe à l'intérieur C:\Windows\Microsoft.NET\Framework\v4.0.30319.

Vous trouverez ci-dessous une capture d'écran de la partition Windows 7, avec .NET 4.0 (et regtlibv12):

Windows 7 - .Net 4

Vous trouverez ci-dessous Windows 8 avec .NET 4.5 (et NO REGTLIBV12):

Windows 8 - .Net 4.5

Est -regtlibv12 plus une partie de la framework .NET? Dois-je installer .NET 4.0 aussi? Que se passerait-il si j'ai installé .net 4.0 sur le dessus de 4,5? Je sais qu'ils se rendent tous les deux au même emplacement sur le disque dur, et 4.5 remplacent efficacement 4.0, et 4.5 est livré par défaut sous Windows 8. Devrais-je installer 4.0, puis réinstaller 4,5 pour obtenir regtlibv12 Retour?

Merci

30
JMK

Cela n'a jamais fait partie du cadre. Et il est entièrement non documenté. Il existe toutefois une rumeur très cohérente que ce soit, beaucoup de programmeurs l'ont trouvée dans leurs répertoires V2.0.50727 ou V4.0.30319 et ont compris qu'il pouvait résoudre des problèmes d'enregistrement. Beaucoup de postes de forum le mentionnent.

La manière exacte qu'il apparaît dans ces dossiers est difficile à inverser, le seul modèle que j'ai vu est qu'il sera là lorsque vous installez vous-même le cadre vous-même. Et ne sera pas là lorsque le framework est pré-installé sur la machine. Ce qui a un peu de sens, il y a plusieurs fichiers .Tlb dans le répertoire-cadre qui doivent être enregistrés. Ils contiennent des informations de type pour .NET [Comvisible] Types que le code client peut avoir une dépendance. Les bibliothèques de type de manière habituelles sont enregistrées ne s'appliquent pas aux fichiers .TLB car ils ne sont pas intégrés dans un serveur COM de normal. Avec la supposition supplémentaire que l'outil n'est pas nécessaire dans une version préinstallée de .NET, car les informations d'enregistrement sont enroulées dans la configuration Windows ordinaire.

Si vous êtes entré dans une dépendance à l'outil, vous ne pouvez pas faire beaucoup de choses au-delà de la copie du .exe d'une autre machine. Ou abordez la raison pour laquelle vous devez l'utiliser de l'autre extrémité de sorte que vous n'en avez plus besoin:

  • c'est une solution de contournement pour oublier d'utiliser l'option/TLB avec Regasm.exe. Cela peut produire une erreur de type_e_cantloadlibarary au moment de l'exécution lorsque le code client tente d'utiliser une interface COM d'un autre fil. La bibliothèque de types fournit les informations de type que le marshalleur standard doit remercier les arguments de la méthode. Utilisez l'option/TLB pour résoudre ce problème.

  • c'est une solution de contournement pour obtenir des serveurs COM à apparaître dans le projet + Ajouter une référence, Tab. Cet onglet répertorie les bibliothèques de type enregistrées. Ce n'est toutefois pas une solution de contournement appropriée, autre que sur les serveurs de construction, vous pouvez compiler votre code mais vous ne pouvez pas l'exécuter car l'enregistrement n'est pas complet. La manière appropriée de le faire consiste à utiliser le programme d'installation fourni par l'auteur ou à l'aide de REGSVR32.exe dans une pincée de sorte que la bibliothèque de types et les touches CLSID sont enregistrées.

  • c'est une solution de contournement pour les serveurs COM qui n'inscrivent pas leur bibliothèque de types. Semblable que ci-dessus, mais l'enregistrement de bibliothèques de type est facultative et n'est généralement requise que sur votre machine de développement, non sur la machine qui exécute le serveur. La plupart des outils pouvant consommer des bibliothèques de type ont un moyen de les ajouter explicitement plutôt que de dépendre de la clé de registre de typelib. Donc, le Visual Studio IDE, vous pouvez utiliser l'onglet Parcourir plutôt pour sélectionner le fichier .TLB directement.

38
Hans Passant