Kunita
Unity CS2012: Cannot openエラー
Unityのプロジェクトを外付けHDDへ移動させたところ、下記のエラーが出るようになった。
Microsoft (R) Visual C# Compiler version 2.9.1.65535 (9d34608e) Copyright (C) Microsoft Corporation. All rights reserved. error CS2012: Cannot open ***/UnityEngine.TestRunner.pdb' for writing -- 'Sharing violation on path
PC・ソフトウェアの環境については下記の通り
MacOS 11.2.1
Unity 2019.4.8
結論から言うと、外付けHDDのフォーマットが原因であった。
APFSもしくはMacOS拡張でフォーマットしたHDDでないと、上記エラーが発生する様子。
「じゃあ、フォーマット直せば良いんじゃね?」と思い、HDDのバックアップを取った(Unityプロジェクトを再びローカルPCに退避させた)後、下記の手順でフォーマットを実行
画面下のDockからFinderをクリック
「アプリケーション」フォルダ内の「ユーティリティ」フォルダをダブルクリック
ディスクユーティリティをダブルクリック
左側から今回フォーマットしたいHDDを選ぶ
上側ツールバーにある「消去」ボタンをクリック
名前を適当に入力、フォーマット形式をMacOS拡張(ジャーナリング)で指定、ボリューム方式をGUIDパーティションマップに
消去をクリックしてフォーマット完了
・・と思ったが、できない。7で消去を押した段階でOperation TimedOutと表示され、消去完了できずに終わってしまう。
仕方がないので、下記の通り、ターミナルから直接フォーマットを行うことにした。
ターミナルを開き、下記コマンドを実行
diskutil list
これを実行すると、接続してるHDDが一覧で表示されるので、その中から自分がフォーマットしたいHDDを探す。(自分の場合は、「/dev/disk2」であった。)
次に下記コマンドを実行(diskの後のXXには上記で見つけたHDDの番号が入ります)。
diskutil unMountDisk /dev/diskXX
"Unmount of all volumes on diskXX"というメッセージが表示されることを確認。続けて、下記コマンドを実行。(HFS+はフォーマット形式、XXXXXXXXXXは外付けHDDに付ける名前、diskXXのXXは上記と同じく、HDDの番号)
diskutil eraseDisk HFS+ XXXXXXXXXX /dev/diskXX
"Finished erase on diskXX"というメッセージが表示されれば、フォーマット完了。
これで先ほどローカルPCに退避させたUnityプロジェクトをHDD上に移動させてもエラーが出なくなる。