COMException von WPF-Anwendungen, nachdem .NET Framework 4.7 unter Windows 7 oder Windows Server 2008 R2 installiert wurde

Dieser Artikel hilft Ihnen bei der Behebung des Problems, das System.Runtime.InteropServices.COMException in WPF-Anwendungen (Windows Presentation Framework) 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

Installieren Sie zum Beheben dieses Problems 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.

Problemumgehung

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

Deinstallieren Des .NET Framework 4.7

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

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

  3. Wählen Sie im .NET Framework 4.7-Wartungs-Assistenten auf diesem Computer Remove.NET Framework 4.7 und 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 kann dazu führen, dass einige Anwendungen nicht mehr funktionieren.

  5. Warten Sie, bis die Deinstallation abgeschlossen ist.

Erneutes Installieren des .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 des .NET Framework 4.7

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

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

  1. Öffnen Sie Windows Update.

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

  3. Nachdem die Suche nach Updates abgeschlossen ist, wählen Sie Optional Updates verfügbar aus.

    Screenshot des bereichs

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

    Screenshot der optionalen Updates, in 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übergehendes Deaktivieren der Touch- und Eingabestiftunterstützung für WPF-Anwendungen

Verwenden Sie eine der folgenden Methoden, um die Touch- und Stiftunterstü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 behoben 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.