
Rhino 8でShapeDiverが起動時にエラーになる原因と直し方.NET Framework互換警告とMissingMethodExceptionの実践対処
Rhino 8でGrasshopperを起動した瞬間に、ShapeDiver関連のプラグインが読み込めずエラーが連発する──この症状は「Rhinoの実行ランタイム(.NET)設定」と「ShapeDiverプラグイン側の特定バージョン不整合」が重なると、再現性高く起きます。ここでは、表示されがちな警告文や例外の意味をほどきつつ、現場で効く復旧手順を優先度順にまとめます。McNeel Forum+2www.rhino3d.com+2
起きていることを整理する(表示メッセージの意味)
今回の系統でよく出るのは次の2種類です。
-
.NET Framework Compatibility Issue
SdRhinoStargateClient.rhpやShapeDiverGltfExporter.rhpなどが「現在のRhinoの.NET実行モードでは互換性に問題がある」と警告しています。Rhino 8は.NET Core系(.NET 7/8)を使うモードと、互換性のための.NET Frameworkモードを切り替えられるため、この切替とプラグインの対応状況が噛み合わないと警告が出ます。www.rhino3d.com+1 -
MissingMethodException(Method not found: AppDomain.DefineDynamicAssembly…)
System.AppDomain.DefineDynamicAssembly(...)が見つからない、という例外です。これは「プラグイン(や内部で使うライブラリ)が想定しているAPI」と「実際にRhinoが動いている.NETランタイム」のズレで起きる典型例で、Grasshopper起動時にShapeDiver側のDI/Proxy生成(Castle DynamicProxy等)で落ちる形になりがちです。McNeel Forum+1
まず最優先:ShapeDiverの“問題が出る版”を避ける
今回の症状に関しては、ShapeDiverプラグインの特定バージョンで不具合が出て、1つ前の版に戻すと直るケースが確認されています。最短で直したい場合はここから着手するのが有効です。McNeel Forum+1
対処
-
ShapeDiverプラグインをいったんアンインストール
-
一つ前の安定版を入れ直す(例:不具合報告のある版→直前の版へロールバック)
-
Rhino起動時の「自動更新」を一時的にオフ(後述)
※「昨日まで動いていたのに急に起きた」タイプは、Rhino本体更新またはプラグイン自動更新が引き金になりやすいです。McNeel Forum
次に効く:Rhino 8の.NET実行モードを揃える
McNeelのRhino 8は、.NET Coreランタイム(.NET 7/8)を基本としつつ、互換性のために.NET Frameworkモードへ切り替えられます。ここがズレると、ShapeDiverの読み込みエラーが安定して出ます。www.rhino3d.com+2www.rhino3d.com+2
手順(Windows想定)
-
Rhinoのコマンドで SetDotNetRuntime を実行
-
互換性問題が出る場合は .NET Framework互換側に切り替えて再起動
逆に、他プラグインの都合で.NET Coreが必要なら、ShapeDiver側を“対応版”に揃える(ロールバック含む)のが現実解です。McNeel Forum+1
競合を断つ:プラグイン更新とキャッシュをいったん止める
1)Rhino起動時の自動更新を止める
プラグインが毎回更新される状態だと、直った→次回起動で再発、が起きます。ShapeDiver側でも「問題が解決するまで自動更新を外す」運用が案内されることがあります。McNeel Forum
2)PackageManager経由の再インストールを徹底
インストールが“半端に上書き”されていると、古いDLL参照が残って例外の形だけ変えて再発します。
-
ShapeDiver関連を削除
-
Rhino再起動
-
再インストール
-
再起動
この順で「起動時に読み込まれるセット」を確実に入れ替えます。
Grasshopper側の切り分け:定義ファイルが引き金になるケース
「特定の.ghを入れた/開いた後から壊れた」場合、定義内のコンポーネントがShapeDiverの初期化を促し、起動時に例外が露見することがあります(コンポーネント名が例外ログに出るタイプ)。McNeel Forum
実務的な切り分け
-
Grasshopperを空の状態で起動(最近開いたファイルを読み込ませない)
-
それで起動が安定するなら、問題の定義を開く前に
-
ShapeDiverの版
-
Rhinoの.NETモード
を先に固定してから段階的に読み込む
-
それでも直らない時の“最後に効く”復旧ルート
-
Rhinoのサービスリリース(SR)を一つ戻す/進める
SR差分で.NET Core側の挙動が変わり、プラグイン互換が崩れる事例があります。McNeel Forum+1 -
ShapeDiverプラグインを「安定して動く組み合わせ」に固定する
(Rhinoの.NET設定と、ShapeDiverの版をセットで固定) -
競合しやすい古いプラグイン(例:以前.NET Framework前提だったもの)を一時的に外す
ランタイム切替を要求するプラグイン同士が同居すると、片方を満たすと片方が壊れる構図になりがちです。Proving Ground Apps+1
まとめ:最短で直す優先順位
-
ShapeDiverを問題の出ない版へロールバック(まずここ)McNeel Forum
-
Rhinoの SetDotNetRuntime で.NET実行モードを揃えるMcNeel Forum
-
自動更新を止め、再インストールで読み込み状態をクリーンにするMcNeel Forum
-
定義ファイル起因の切り分け(空起動→段階的に開く)McNeel Forum
この4点を順番に潰すだけで、起動時の「.NET Framework Compatibility Issue」とMissingMethodException系は、かなりの確率で収束します。