概要
Revit起動時にaddinファイルで指定したアドインのdllのロードが失敗し、「外部ツールエラー」ウィンドウでアドインが読み込めない旨のエラーメッセージが表示される場合の対処法について記載しました。
以下の現象の解消方法です
Revit起動時、アドインのロードエラーのウィンドウが表示される (物件ファイル選択画面より前に表示されます)
- エラーメッセージのウィンドウのタイトルは「外部ツール - 外部ツールエラー」
- エラーメッセージの例は、「Revitで外部アプリケーションの"〇〇"を実行できませんでした。サポートが必要な場合は~」となっている
- エラーの種類は「System.IO.FileLoadException」
- エラーメッセージの詳細の箇所は、「ファイルまたはアセンブリ"dllまでのパス"、またはその依存関係の1つが読み込めませんでした。操作はサポートされていません。(HRESULTからの例外:xxxxxx)」となっている
解消方法
Revitが読み込もうとしているdllが、アクセスブロックになっていて読み込みが失敗している可能性があります。その場合は、以下の方法で解消できます。
再度Revitを起動すると、アドインのdllは無事ロードできると思います。
Mark of the Web(MOTW)と言われる、インターネットやメールなど外部から取得したファイルを識別して危険なスクリプトやコードの実行を防ぐための機能が働いているため、上記の方法が必要になります。
もし上記のようなチェックを入れるべきファイルが多くある場合ですが、web等からzipファイルでダウンロードしたものについては、展開する前のzipファイルの時点でzipファイルのプロパティから上記のチェックを入れておくと一括で変更できます。
また、そもそも圧縮データではないものについては、一度zip等に圧縮して再展開するとチェックが入っている状態でファイルが展開されます。
終わりに
最初にこの現象に遭遇したときは、PGやaddinファイルの定義等を色々調べて解消に時間が掛かってしまいました。他の開発者からモジュールがzipファイル等で連携されたときに起こりやすいです。
※zipファイルをそのまま解凍すると、解凍されたdllは「許可する」に☑が入っていない状態になっているためです。
この場合は、解凍前にzipファイルのプロパティから「許可する」に☑を入れると、解凍後のdllは全て☑が入った状態になります。
