現象
.NET FRAMEWORK 4.8 をインストールした後に0x8001010E RPC_E_WRONG_THREADが発生する STA COM メソッドの呼び出し。
回避策
方法 1: 環境変数
次の環境変数を設定します:COMPLUS_DisableCCWSupportIAgileObject=1
このメソッドは、この環境変数を継承するすべての環境に影響します。 これは単一のコンソール セッションであるか、環境変数をグローバルに設定するとマシン全体に影響を与える可能性があります。 環境変数名では大文字と小文字が区別されません。
方法 2: レジストリ
レジストリ エディター (regedit.exe) を使用して、次のいずれかのサブキーを見つけます。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework
x64 システム上の 32 ビット プロセスの場合は、次を使用します。
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework
次の値の名前を追加します: DisableCCWSupportIAgileObject 型: DWORD (32 ビット) 値 (REG_WORD とも呼ばれます) 値: 1
Windows REG.EXE ツールを使用して、コマンド ラインまたはスクリプト環境からこの値を追加できます。 以下に例を示します。
reg add HKLM\SOFTWARE\Microsoft\.NETFramework /v DisableCCWSupportIAgileObject /t REG_DWORD /d 1
この場合、HKLM はHKEY_LOCAL_MACHINEの代わりに使用されます。 reg add /? を使用する この構文のヘルプを参照してください。 レジストリ値の名前は大文字と小文字が区別されません。
詳細情報
この.NET Framework 4.8 ランタイムの変更の詳細については、以下を参照してください:https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/runtime/4.7.2-4.8#net-interop-will-now-queryinterface-for-iagileobject-a-winrt-interface
適用対象
サポートされているバージョンの Windows で .NET Framework 4.8 で実行されているアプリケーション。