AzureEmulatorで実行時に「パスが長すぎます。」エラー発生時の解決方法
Azureで開発をしていて、AzureEmulatorで実行しようとしたら下記のようなエラーが発生しました。
「パスが長すぎます。 パスには 260 字未満、ディレクトリ名には 248 字未満の長さを指定してください。 」
※クリックすると大きく見えます。
今回は上記エラーの解決手段を覚書として残しておきます。
<エラーが発生した原因>
画面表示の通り、使用したDLLのパスが制限をオーバーしたためにエラーとなっています。
デフォルト設定では「C:Users<username>AppDataLocaldftmp」にDLL等を展開します。
今回「Microsoft.Practices.EnterpriseLibrary.WindowsAzure.TransientFaultHandling.DLL」を使用しました。
これだけで78文字…。フォルダ名も合わせて156文字…。UsersやRole等のフォルダも合わせると305文字…。
260文字制限を余裕でオーバーしています…。
ということで、
<対策>
1. デバッグの停止をし、VisialStudioを終了する。
2.「システムのプロパティ」を表示する。(「コントロール パネルシステムとセキュリティシステム」システムの詳細設定)
3.「環境変数(N)…」をクリックする。
4.「ユーザーの環境変数」の「新規(N)…」をクリックする。
5.新しいユーザー変数に以下の設定を入力する。
変数名(N) : _CSRUN_STATE_DIRECTORY
変数値(V) : [なるべく短いパス名](「C:Azure」等)
6.「OK」をクリックして、保存されていることを確認する。
7.コマンドプロンプトを起動し、以下のコマンドを入力する。
cd C:Program FilesMicrosoft SDKsAzureEmulator
csrun /devfabric:shutdown
成功した際には、システムトレイのAzureEmulatorからポップアップが表示されます。
※cdコマンドでエラーとなった場合には、「csrun.exe」を検索し、該当のフォルダへ移動する。
※AzureEmulatorが起動していないと以下のエラーとなるが、問題ない。
8.システムトレイのAzureEmulatorを右クリックして「Exit」をクリックする。
9.VisialStudioを起動し、再度実行する。
私の環境では、上記手段でエラーが解消できました。
全く同じ現象で困っており、大変参考になりました。
ただスクリーンショットにあるように、「C:\AzureTemp\」と設定したところ、
私の環境では、Emulatorが起動しなくなってしまいました。
末尾の\を外して、「C:\AzureTemp」としたところ、正常に起動するようになりました。