Freigeben über


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

In diesem Artikel können Sie das Problem beheben, das System.Runtime.InteropServices.COMException in WPF-Anwendungen (Windows Presentation Framework) auftritt.

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

Symptome

Betrachten Sie das folgende Szenario:

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

Ausnahmetyp: System.TypeInitializationException
Nachricht: 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))

Beschluss

Um dieses Problem zu beheben, installieren Sie das Update vom 25. Juli 2017 für .NET Framework 4.6, 4.6.1, 4.6.2 und 4.7 aus dem Microsoft Update-Katalog.

Zwischenlösung

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

Deinstallieren von .NET Framework 4.7

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

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

  3. Wählen Sie im Assistenten für die Wartung von .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 zeigt, kann dazu führen, dass einige Anwendungen nicht mehr funktionieren.

  5. Warten Sie, bis die Deinstallation abgeschlossen ist.

Erneutes Installieren von .NET Framework 4.7

Verwenden Sie eine der folgenden Methoden, um microsoft .NET Framework 4.7 erneut zu installieren.

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

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

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

  1. Öffnen Sie Windows Update.

  2. Wählen Sie "Online auf Updates von Windows Update überprüfen" aus.

  3. Nachdem die Suche nach Updates abgeschlossen ist, wählen Sie "Optionale Updates" aus.

    Screenshot des Windows Update-Bereichs mit dem Link zu optionalen Updates, die verfügbar sind.

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

    Screenshot der 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übergehendes Deaktivieren 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 den folgenden Eintrag zur Anwendungskonfiguration 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 Sie die Registrierung mit dem Registrierungs-Editor oder mit einer anderen Methode falsch ändern. Diese Probleme erfordern möglicherweise, dass Sie das Betriebssystem neu installieren. Microsoft kann nicht garantieren, dass diese Probleme behoben werden können. Ändern Sie die Registrierung auf eigene Gefahr.

    • Ort: 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 in .NET Framework 4.7 finden Sie unter Bekannte Probleme für .NET Framework 4.7.