„COMException“-Fehler von WPF-Anwendungen nach der Installation von .NET Framework 4.7 unter Windows 7 oder Windows Server 2008 R2

Gilt für: .NET Framework 4.7Windows 7 Service Pack 1Windows Server 2008 R2 Service Pack 1

Problembeschreibung


Stellen Sie sich folgendes Szenario vor:

  • Auf Ihrem Fingereingabegerät wird Windows 7 Service Pack 1 (SP1) oder Windows Server 2008 R2 SP1 ausgeführt.
  • Auf dem Gerät werden einige WPF-Anwendungen (Windows Presentation Framework) ausgeführt.
  • Sie installieren das  Preview of Quality Rollup für .NET Framework 4.6, 4.6.1 und 4.6.2 vom Mai 2017 (KB 4104606) auf dem Gerät.
  • Anschließend installieren Sie .NET Framework 4.7 auf dem Gerät.

In diesem Szenario werden die WPF-Anwendungen mit Fehlermeldungen ähnlich der folgenden abgebrochen:

Ausnahmetyp:   System.TypeInitializationException
Meldung:   Der Typeninitialisierer für „MS.Win32.Penimc.UnsafeNativeMethods“ hat eine Ausnahme verursacht.
InnerException:   System.Runtime.InteropServices.COMException
Meldung der inneren Ausnahme: Klasse nicht registriert (Ausnahme von HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
 

Lösung


Installieren Sie zur Behebung des Problems das Update für .NET Framework 4.6, 4.6.1, 4.6.2 und 4.7 vom 25. Juli 2017 aus dem Microsoft Update-Katalog.

Windows 7 SP1 und Windows Server 2008 R2 SP1

Laden Sie das eigenständige Paket aus dem Microsoft Update-Katalog herunter. Weitere Informationen zu diesem Update finden Sie unter KB 4035510.

Windows 8.1 und Windows Server 2012 R2

Laden Sie das eigenständige Paket aus dem Microsoft Update-Katalog herunter. Weitere Informationen zu diesem Update finden Sie unter KB 4035509.

Windows Server 2012

Laden Sie das eigenständige Paket aus dem Microsoft Update-Katalog herunter. Weitere Informationen zu diesem Update finden Sie unter KB 4035508.

Problemumgehung


Um das Problem zu umgehen, deinstallieren Sie .NET Framework 4.7, und installieren Sie es erneut. Alternativ können Sie auch die betroffene WPF-Toucheingabekomponente vorübergehend deaktivieren.

Deinstallieren Sie .NET Framework 4.7.

  1. Klicken Sie in der Systemsteuerung in der Kategorie Programme auf Programm deinstallieren.
  2. Klicken Sie in der Liste der Programme auf Microsoft .NET Framework 4.7 und dann auf Deinstallieren/ändern.
  3. Klicken Sie im Wartungs-Assistenten für .NET Framework 4.7 auf .NET Framework 4.7 von diesem Computer entfernen und dann auf Weiter.
  4. Wenn das folgende Warnfenster angezeigt wird, klicken Sie auf Weiter.

    Warnung bei der Deinstallation von.NET Framework 4.7
  5. Warten Sie, bis die Deinstallation abgeschlossen ist.

Neuinstallieren von .NET Framework 4.7

Verwenden Sie eine der folgenden Methoden, um Microsoft .NET Framework 4.7 neu zu installieren.

Methode 1: Manuelles Herunterladen und Installieren von .NET Framework 4.7

  1. Laden Sie den Webinstaller für .NET Framework 4.7 herunter.
  2. Installieren Sie .NET Framework 4.7.

Methode 2: Installieren von .NET Framework 4.7 mithilfe von Windows Update

  1. Öffnen Sie Windows Update.
  2. Klicken Sie auf Suchen Sie online nach Updates von Microsoft Update.
  3. Klicken Sie nach Abschluss der Updatesuche auf Optionale Updates sind verfügbar.

    Optionale Updates verfügbar
  4. Wählen Sie Microsoft .NET Framework für Windows 7 und Windows Server 2008 R2 aus, und klicken Sie dann auf OK.

    .NET Framework 4.7 in Windows Update
  5. Warten Sie, bis die Installation abgeschlossen ist.

Vorübergehendes Deaktivieren der Unterstützung von Toucheingabe und Tablettstift für WPF-Anwendungen

Verwenden Sie eine der folgenden Methoden, um vorübergehend die Unterstützung für Toucheingabe und Tablettstift zu deaktivieren.

Hinweis Informationen zu einer dauerhaften Lösung finden Sie im Abschnitt zum Status dieses Artikels.

  • Fügen Sie der Anwendungskonfiguration den folgenden Eintrag hinzu, um die Unterstützung von Toucheingabe und Tablettstift für WPF-Anwendungen zu deaktivieren.

<runtime>

<AppContextSwitchOverrides value=" Switch.System.Windows.Input.Stylus.DisableStylusAndTouchSupport=true"/>

</runtime>

  • Wenden Sie den folgenden Registrierungsunterschlüssel an, um die Unterstützung von Toucheingabe und Tablettstift für WPF-Anwendungen global auf dem Computer zu deaktivieren.

    Registrierungspfad: HKEY_LOCAL_MACHINE\Software\[Wow6432Node\]Microsoft\.NETFramework\AppContext\Switch.System.Windows.Input.Stylus.DisableStylusAndTouchSupport
     

    Typ: Zeichenfolge
    Wert: „true“

Verweis


Weitere Informationen zu bekannten Problemen in .NET Framework 4.7 finden Sie unter Bekannte Probleme bei .NET Framework 4.7.