英語で読む

次の方法で共有


.NET Framework 4.7 が Windows 7 または Windows Server 2008 R2 にインストールされた後の WPF アプリケーションからの COMException

この記事は、Windows Presentation Framework (WPF) アプリケーションで System.Runtime.InteropServices.COMException が発生する問題を解決するのに役立ちます。

元の製品バージョン: .NET Framework 4.7、Windows 7 Service Pack 1、Windows Server 2008 R2 Service Pack 1
元の KB 番号: 4033488

現象

以下のシナリオについて考えてみます。

  • Microsoft Windows 7 Service Pack 1 (SP1) または Windows Server 2008 R2 SP1 を実行しているタッチ デバイスがある。
  • 一部の WPF アプリケーションがデバイスで実行されています。
  • .NET Framework 4.6、4.6.1、および 4.6.2 (KB 4104606) 用の May 2017 Preview of Quality Rollup をデバイスにインストールします。
  • その後、.NET Framework 4.7 をデバイスにインストールします。

このシナリオでは、WPF アプリケーションが失敗し、エラー メッセージが生成されます。

例外の種類: System.TypeInitializationException
メッセージ: 'MS の型初期化子。Win32.Penimc.UnsafeNativeMethods' が例外をスローしました。
InnerException: System.Runtime.InteropServices.COMException
内部例外のメッセージ: クラスが登録されていません (HRESULT からの例外: 0x80040154 (REGDB_E_CLASSNOTREG))

解決方法

この問題を解決するには、Microsoft Update カタログから、2017 年 7 月 25 日、.NET Framework 4.6、4.6.1、4.6.2、および 4.7 の更新プログラムをインストールします。

回避策

この問題を回避するには、.NET Framework 4.7 をアンインストールしてから再インストールします。 または、影響を受ける WPF タッチ コンポーネントを一時的に無効にします。

.NET Framework 4.7 をアンインストールする

  1. コントロール パネルで、Programs カテゴリのプログラムをアンインストールするを選択します。

  2. プログラムの一覧で、Microsoft .NET Framework 4.7 を見つけて選択し、Uninstall/Change を選択します。

  3. .NET Framework 4.7 メンテナンス ウィザードで、このコンピューターから Remove.NET Framework 4.7 を選択し次へ を選択

  4. 次の警告ウィンドウが表示されたら、 Continue を選択します。

    Microsoft .NET Framework をアンインストールすると、一部のアプリケーションが機能しなくなる可能性があることを示す警告ウィンドウのスクリーンショット。

  5. アンインストールが完了するまで待ちます。

.NET Framework 4.7 を再インストールする

Microsoft .NET Framework 4.7 を再インストールするには、次のいずれかの方法を使用します。

方法 1: .NET Framework 4.7 を手動でダウンロードしてインストールする

  1. .NET Framework 4.7 用の web インストーラーをダウンロードします。
  2. .NET Framework 4.7 をインストールします。

方法 2: Windows Update を使用して .NET Framework 4.7 をインストールする

  1. Windows Update を開きます。

  2. [ オンラインで Windows Update から更新プログラムを確認する] を選択

  3. 更新プログラムの検索が完了したら、[利用可能なオプションの更新プログラム 選択

    Windows Update パネルのスクリーンショット。利用可能なオプションの更新プログラムのリンクが表示されています。

  4. Microsoft .NET Framework 4.7 for Windows 7 および Windows Server 2008 R2 を見つけて選択し、OK を選択します。

    オプションの更新プログラムを示すスクリーンショット。Microsoft .NET Framework 4.7 for Windows 7 および Windows Server 2008 R2 for x64 (KB3186497) が選択されています。

  5. インストールが完了するまで待ちます。

WPF アプリケーションのタッチとスタイラスのサポートを一時的に無効にする

タッチとスタイラスのサポートを一時的に無効にするには、次のいずれかの方法を使用します。

  • 次のエントリを アプリケーション構成に追加 WPF アプリケーションのタッチとスタイラスのサポートを無効にします。

    <runtime>
        <AppContextSwitchOverrides value=" Switch.System.Windows.Input.Stylus.DisableStylusAndTouchSupport=true"/>
    </runtime>
    
  • 次のレジストリ サブキーを適用して、WPF アプリケーションのコンピューターグローバルに対するタッチとスタイラスのサポートを無効にします。

    警告

    レジストリ エディタや他の方法を使用してレジストリを変更する際、適切に変更しないと重大な問題を引き起こす可能性があります。 場合によっては、オペレーティング システムの再インストールが必要になります。 マイクロソフトは、このような問題の解決に関して、一切責任を負わないものとします。 レジストリの変更はユーザー自身の責任において行ってください。

    • 場所: HKEY_LOCAL_MACHINE\Software\[Wow6432Node\]Microsoft\.NETFramework\AppContext\Switch.System.Windows.Input.Stylus
    • 名前: DisableStylusAndTouchSupport
    • 種類: 文字列
    • 値: true

リファレンス

.NET Framework 4.7 の既知の問題の詳細については、「 .NET Framework 4.7 の問題を参照してください。