2012-10-07 28 views
25

Tengo una instalación limpia de Windows 8 en una partición, con Visual Studio 11/2012 Professional instalado y no puedo encontrar regtlibv12.exe dentro de C:\Windows\Microsoft.NET\Framework\v4.0.30319.¿Qué pasó con regtlibv12?

A continuación se muestra una captura de pantalla de mi partición de Windows 7, con .Net 4.0 (y regtlibv12):

Windows 7 - .Net 4

A continuación se muestra Windows 8 con .Net 4.5 (y sin regtlibv12):

Windows 8 - .Net 4.5

¿regtlibv12 ya no forma parte del .Net framework? ¿Debo instalar también .Net 4.0? ¿Qué pasaría si instalé .Net 4.0 sobre la parte superior de 4.5? Sé que ambos van a la misma ubicación en el disco duro, y 4.5 sobrescribe efectivamente 4.0, y 4.5 viene por defecto en Windows 8. ¿Necesitaría instalar 4.0, y luego volver a instalar 4.5 para obtener regtlibv12?

Gracias

Respuesta

33

nunca fue parte del marco. Y está completamente indocumentado. Sin embargo, existe un rumor muy consistente de que lo es, muchos programadores lo han encontrado en sus directorios v2.0.50727 o v4.0.30319 y descubrieron que podría resolver problemas de registro. Muchas publicaciones en el foro lo mencionan.

La forma exacta en que se muestra en esas carpetas es difícil de aplicar ingeniería inversa, el único patrón que he visto es que estará allí cuando instale el marco usted mismo. Y no estará allí cuando el marco esté preinstalado en la máquina. Lo que de alguna manera tiene sentido, hay varios archivos .tlb en el directorio de framework que deben registrarse. Contienen información de tipo para los tipos .NET [ComVisible] en los que el código de cliente puede tener una dependencia. Las bibliotecas de tipo de forma normal registradas no se aplican a esos archivos .tlb, ya que no están integrados en un servidor COM normal. Con la conjetura adicional de que la herramienta no es necesaria en una versión preinstalada de .NET porque la información de registro se acumula en la configuración normal de Windows.

Si se ha metido en una dependencia de la herramienta, entonces no puede hacer mucho más que copiar el .exe desde otra máquina. O hacer frente a la razón por la que hay que usarla desde el otro extremo para que no lo necesita más:

  • es una solución para olvidarse de usar la opción/TLB con Regasm.exe. Eso puede producir un error TYPE_E_CANTLOADLIBRARY en el tiempo de ejecución cuando el código del cliente intenta usar una interfaz COM de otro hilo. La biblioteca de tipos proporciona la información de tipo que el Marshaller estándar necesita para ordenar los argumentos del método. Use la opción/tlb para arreglar eso.

  • es una solución para que los servidores COM aparezcan en la pestaña COM + Agregar referencia de Project +. Esa pestaña muestra las bibliotecas de tipos registrados. Sin embargo, no es una solución adecuada, salvo en los servidores de compilación, puede compilar su código pero no puede ejecutarlo ya que el registro no está completo. La forma correcta de hacerlo es mediante el uso del instalador proporcionado por el autor o mediante el uso de Regsvr32.exe en una pizca, para que tanto la biblioteca de tipos como las claves CLSID se registren.

  • es una solución para los servidores COM que no registran su biblioteca de tipos. Similar a la anterior, pero el registro de bibliotecas de tipos es opcional y, por lo general, solo se requiere en su máquina de desarrollo, no en la máquina que ejecuta el servidor. La mayoría de las herramientas que pueden consumir bibliotecas de tipos tienen una forma de agregarlas explícitamente en lugar de depender de la clave de registro TypeLib.Lo mismo ocurre con el IDE de Visual Studio, puede usar la pestaña Examinar para seleccionar directamente el archivo .tlb.

+0

muy interesante, si puedo averiguar cómo llegó a mi máquina originalmente voy a dejar un comentario, sin embargo, no se instala el marco de mí mismo en la partición de Windows 7, se instala junto con Visual Studio, al igual que lo lo hice cada vez que instalé Visual Studio en Windows 8 – JMK

+1

No, hay una gran diferencia. .NET 4.5 viene preinstalado en Windows 8. –

+0

Lo sentimos, por supuesto, y 3.5 viene preinstalado en Windows 7, instala 4 cuando instala Visual Studio 2010. – JMK

Cuestiones relacionadas