2021年10月26日火曜日

MPLABのシステムドライブ圧迫を回避する

MPLABさんの困った仕様

MPLABは"C:\Users\ユーザー名"に勝手にDFPのデータやらMCCのデータやらを置いてくれます。(※Windowsの想定です)
環境によりますが、数GBあるので知らぬ間にCドライブを圧迫してくれる困った仕様です。当然保存先を指定できるオプションはありません。
肥大しがちなフォルダは".mchp_packs" ".mcc"なので、こいつらをなんとかしたいと思います。
 

シンボリックリンクで解決…できず!!

保存先を設定できないなら次に試すのはシンボリックリンクの作成です。殆どはこれで解決するのでブログ記事にするネタにもならないのですが、今回は解決できませんでした。ということで今回はネタになりました。
 
ダメだった例↓
 
シンボリックリンク作成コマンド:
管理者権限にて、
mklink /d "C:\Users\ユーザー名\.mchp_packs" "実体のある.mchp_packsフォルダのパス"
でシンボリックリンクを作成し、MPLABを起動します。
packsタブで確認すると、ProgramFilesの規定DFPデータは認識されていますが、Usersの最新DFPデータは見失ってしまうようです。実際、DFPをインストールするとガン無視されます。Logを見ても謎のExceptionが発生していました。

ジャンクションで解決!!!

ダメ元で試したジャンクション作成で解決しました。今までジャンクションってシンボリックリンクの下位互換の古い規格という印象しかなかったのですが、古い=歴史があることが幸いしたようです。
MPLABは実質NetBeansですが、クロスプラットフォームというかJavaVMで動いているせいでWindowsとの相性がいまいちなんでしょうか、知らんけど。

ちなみにジャンクションの作成は/jオプションです。管理者権限は要りません。
 
成功した例↓
 
mklink /j "C:\Users\ユーザー名\.mchp_packs" "実体のある.mchp_packsフォルダのパス"
mklink /j "C:\Users\ユーザー名\.mcc" "実体のある.mccフォルダのパス"
packsタブからの認識もバッチリです。

0 件のコメント:

コメントを投稿