COMException de aplicaciones WPF después de instalar .NET Framework 4.7 en Windows 7 o Windows Server 2008 R2

Este artículo te ayuda a resolver el problema en el que se produce en las aplicaciones de System.Runtime.InteropServices.COMException Windows Presentation Framework (WPF).

Versión original del producto:   .NET Framework 4.7, Windows 7 Service Pack 1, Windows Server 2008 R2 Service Pack 1
Número KB original:   4033488

Síntomas

Imagine la siguiente situación:

  • Tiene un dispositivo táctil que ejecuta Microsoft Windows 7 Service Pack 1 (SP1) o Windows Server 2008 R2 SP1.
  • Algunas aplicaciones WPF se ejecutan en el dispositivo.
  • Instale la versión preliminar de mayo de 2017 del paquete acumulativo de calidad para .NET Framework 4.6, 4.6.1 y 4.6.2 (KB 4104606) en el dispositivo.
  • A continuación, instale .NET Framework 4.7 en el dispositivo.

En este escenario, se produce un error en las aplicaciones WPF y se generan mensajes de error:

Tipo de excepción: System.TypeInitializationException
Mensaje: el inicializador de tipo para 'MS. Win32.Penimc.UnsafeNativeMethods' lanzó una excepción.
InnerException: System.Runtime.InteropServices.COMException
Mensaje de la excepción interna: clase no registrada (excepción de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

Solución

Para resolver este problema, instale la actualización del 25 de julio de 2017 para .NET Framework 4.6, 4.6.1, 4.6.2 y 4.7 desde el Catálogo de Microsoft Update.

Solución alternativa

Para solucionar este problema, desinstale y vuelva a instalar .NET Framework 4.7. Como alternativa, deshabilita temporalmente el componente táctil WPF afectado.

Desinstalar .NET Framework 4.7

  1. En el Panel de control, seleccione Desinstalar un programa en la categoría Programas.

  2. En la lista de programas, busque y seleccione Microsoft .NET Framework 4.7 y, a continuación, seleccione Desinstalar o cambiar.

  3. En el Asistente para mantenimiento de .NET Framework 4.7, seleccione Remove.NET Framework 4.7 en este equipo y, a continuación, seleccione Siguiente.

  4. Si aparece la siguiente ventana de advertencia, seleccione Continuar.

    Advertencia al desinstalar .NET Framework 4.7

  5. Espere a que se complete la desinstalación.

Reinstalar .NET Framework 4.7

Para reinstalar Microsoft .NET Framework 4.7, use uno de los métodos siguientes.

Método 1: Descargar e instalar manualmente .NET Framework 4.7

  1. Descargue el instalador web para .NET Framework 4.7.
  2. Instale .NET Framework 4.7.

Método 2: Usar Windows Update para instalar .NET Framework 4.7

  1. Abre Windows Update.

  2. Selecciona Buscar actualizaciones de Windows Update en línea.

  3. Una vez completada la búsqueda de actualizaciones, seleccione Actualizaciones opcionales disponibles.

    Actualizaciones opcionales disponibles

  4. Busque y seleccione Microsoft .NET Framework para Windows 7 y Windows Server 2008 R2 y, a continuación, seleccione Aceptar.

    .NET Framework 4.7 en Windows Update

  5. Espere a que termine la instalación.

Deshabilitar temporalmente la compatibilidad con entrada táctil y lápiz para aplicaciones WPF

Para deshabilitar temporalmente la compatibilidad con la función táctil y la pluma, usa uno de los siguientes métodos.

  • Agrega la siguiente entrada a la configuración de la aplicación para deshabilitar la compatibilidad táctil y de lápiz para aplicaciones WPF.

    <runtime>
        <AppContextSwitchOverrides value=" Switch.System.Windows.Input.Stylus.DisableStylusAndTouchSupport=true"/>
    </runtime>
    
  • Aplica la siguiente subclave del Registro para deshabilitar la compatibilidad táctil y de lápiz para aplicaciones WPF globales del equipo.

    Advertencia

    Es posible que se produzcan problemas graves si modifica el Registro de forma incorrecta mediante el Editor del Registro u otro método. Estos problemas pueden requerir la reinstalación del sistema operativo. Microsoft no puede garantizar que estos problemas se puedan resolver. Modifique el Registro bajo su propia responsabilidad.

    • Ubicación: HKEY_LOCAL_MACHINE\Software\[Wow6432Node\]Microsoft\.NETFramework\AppContext\Switch.System.Windows.Input.Stylus
    • Nombre: DisableStylusAndTouchSupport
    • Tipo: String
    • Valor: true

Referencia

Para obtener más información acerca de los problemas conocidos en .NET Framework 4.7, vea Problemas conocidos de .NET Framework 4.7.