COMException von WPF-Anwendungen nach der Installation von .NET Framework 4.7 unter 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:

  • Sie verfügen über ein Touchgerät, auf dem Microsoft Windows 7 Service Pack 1 (SP1) oder Windows Server 2008 R2 SP1 ausgeführt wird.
  • Einige WPF-Anwendungen werden auf dem Gerät ausgeführt.
  • Sie installieren die Vorschau des Qualitätsrollups vom Mai 2017 für .NET Framework 4.6, 4.6.1 und 4.6.2 (KB 4104606) auf dem Gerät.
  • Anschließend installieren Sie .NET Framework 4.7 auf dem Gerät.

In diesem Szenario führen die WPF-Anwendungen zu einem Fehler und generieren Fehlermeldungen:

Ausnahmetyp: System.TypeInitializationException
Nachricht: Der Typ-Initialisierer 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 .NET Framework 4.6, 4.6.1, 4.6.2 und 4.7 aus dem Microsoft Update-Katalog.

Problemumgehung

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

Deinstallieren von .NET Framework 4.7

  1. Wählen Sie in der Systemsteuerung in der Kategorie "Programme" "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 Warnungsfenster angezeigt wird, wählen Sie "Weiter" aus.

    Warnung beim Deinstallieren von .NET Framework 4.7

  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 neu 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: Installieren von .NET Framework 4.7 mithilfe von Windows Update

  1. Öffnen Sie Windows Update.

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

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

    Optionale Updates verfügbar

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

    .NET Framework 4.7 in Windows Update

  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 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.

    • Speicherort: 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.