COMException von WPF-Anwendungen nach der Installation von .NET Framework 4.7 auf Windows 7 oder Windows Server 2008 R2

Dieser Artikel hilft Ihnen, das Problem zu beheben, das System.Runtime.InteropServices.COMException in Windows Presentation Framework (WPF)-Anwendungen auftritt.

Ursprüngliche Produktversion:   .NET Framework 4.7, Windows 7 Service Pack 1, Windows Server 2008 R2 Service Pack 1
Ursprüngliche KB-Nummer:   4033488

Problembeschreibung

Stellen Sie sich folgendes Szenario vor:

In diesem Szenario schlagen die WPF-Anwendungen fehl und generieren Fehlermeldungen:

Ausnahmetyp: System.TypeInitializationException
Meldung: Der Typinitialisierer für 'MS. Win32.Penimc.UnsafeNativeMethods' hat eine Ausnahme ausgelöst.
InnerException: System.Runtime.InteropServices.COMException
Meldung der inneren Ausnahme: Klasse nicht registriert (Ausnahme von HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

Lösung

Um dieses Problem zu beheben, installieren Sie das Update vom 25. Juli 2017 für die .NET Framework 4.6, 4.6.1, 4.6.2 und 4.7 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 and 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 dieses Problem zu umgehen, deinstallieren Sie die .NET Framework 4.7, und installieren Sie sie erneut. Alternativ können Sie die betroffene WPF-Touchkomponente vorübergehend deaktivieren.

Deinstallieren der .NET Framework 4.7

  1. Wählen Sie in der Systemsteuerung in der Kategorie "Programme" die Option "Programm deinstallieren" aus.

  2. Suchen Sie in der Liste der Programme Microsoft .NET Framework 4.7, und wählen Sie dann "Deinstallieren/Ändern" aus.

  3. Wählen Sie im Wartungs-Assistenten für .NET Framework 4.7 auf diesem Computer Remove.NET Framework 4.7 aus, und wählen Sie dann "Weiter" aus.

  4. Wenn das folgende Warnfenster angezeigt wird, wählen Sie "Weiter" aus.

    Screenshot des Warnfensters, in dem die Deinstallation von Microsoft .NET Framework möglicherweise dazu führen kann, dass einige Anwendungen nicht mehr funktionieren.

  5. Warten Sie, bis die Deinstallation abgeschlossen ist.

Neuinstallation der .NET Framework 4.7

Um microsoft .NET Framework 4.7 neu zu installieren, verwenden Sie eine der folgenden Methoden.

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

  1. Laden Sie das Webinstallationsprogramm für die .NET Framework 4.7herunter.
  2. Installieren Sie die .NET Framework 4.7.

Methode 2: Verwenden von Windows Update zum Installieren der .NET Framework 4.7

  1. Öffnen Sie Windows Update.

  2. Wählen Sie online nach Updates aus Windows Update suchen aus.

  3. Wählen Sie nach Abschluss der Suche nach Updates die Option "Optionale Updates verfügbar" aus.

    Screenshot des Windows Update-Bereichs mit dem Link der optionalen verfügbaren Updates.

  4. Suchen Sie Microsoft .NET Framework 4.7 für Windows 7 und Windows Server 2008 R2, und wählen Sie dann OK aus.

    Der Screenshot zeigt die optionalen Updates, bei denen Microsoft .NET Framework 4.7 für Windows 7 und Windows Server 2008 R2 für x64 (KB3186497) ausgewählt ist.

  5. Warten Sie, bis die Installation abgeschlossen ist.

Vorübergehende Deaktivierung der Touch- und Eingabestiftunterstützung für WPF-Anwendungen

Verwenden Sie eine der folgenden Methoden, um die Touch- und Eingabestiftunterstützung vorübergehend zu deaktivieren.

  • Fügen Sie der Anwendungskonfiguration den folgenden Eintrag hinzu, um die Touch- und Eingabestiftunterstützung 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 Touch- und Eingabestiftunterstützung für WPF-Anwendungen computer global zu deaktivieren.

    Warnung

    Schwerwiegende Probleme können auftreten, wenn die Registrierung mit dem Registrierungs-Editor oder einer anderen Methode unsachgemäß bearbeitet wird. Aufgrund dieser Probleme kann eine Neuinstallation des Betriebssystems erforderlich sein. Microsoft kann nicht garantieren, dass diese Probleme gelöst werden können. Das Ändern der Registrierung erfolgt auf eigenes Risiko.

    • Lage: HKEY_LOCAL_MACHINE\Software\[Wow6432Node\]Microsoft\.NETFramework\AppContext\Switch.System.Windows.Input.Stylus
    • Name: DisableStylusAndTouchSupport
    • Typ: Zeichenfolge
    • Wert: true

Referenz

Weitere Informationen zu bekannten Problemen im .NET Framework 4.7 finden Sie unter "Bekannte Probleme" für .NET Framework 4.7.