トップ回答者
Visual Studio 2013 Premium+SDK2.7でパッケージ作成時にmsshrtmi.dllへのアクセスが拒否されるエラー

質問
-
Visual Studio 2013 PremiumとAzureSDK2.7をインストールし、WorkerRoleを作ってパッケージを作成すると以下のエラーが出ます。
エラー内容
「パス C:\Users\xxx\AppData\Local\Temp\xxxx\roles\WorkerRole1\base\x86\msshrtmi.dll へのアクセスが拒否されました」
検索してみたものの、同様のエラーが出ている方はいらっしゃったようですが解決にいたっているサイトを見つけられませんでした。
どなたか原因や手がかりになりそうなことについてご存知の方いらっしゃいましたら助けていただけないでしょうか。
尚、プロジェクトについてはソースを初期状態から何も変更せず、単純にWorkerRoleを作った状態のプロジェクトでも同じエラーとなりました。
回答
-
こんにちは。
StackOverflowで回避策が載っていました。
http://stackoverflow.com/questions/31596327/deploying-to-azure-access-to-the-path-msshrtmi-dll-is-denied
現状のVer(2.7)だと32ビットOS上だとこのエラーのようになるようです。回避策は64ビットOSにするか、バグFix版を待つかになるかと思います。
すべての返信
-
こんにちは。
ビルドすると <プロジェクトのフォルダ>\csx\Debug\roles\WorkerRole1\base\x64 といったパスのフォルダにIISConfigurator.exeなどといっしょにmsshrtmi.dllが配置されますが、こちらの環境だとユーザーフォルダのAppData\Local\Temp\~配下にはできませんでした。(StackOverflowにも似たような症状の人がいますが。。)
VS2013(Update5)+Azure SDK2.7やVS2015+Azure SDK2.7環境で見てみましたがどちらも同じでした。
Tempフォルダ配下にできてしまうのが特殊なのか一時的にできるものなのかはわかりませんが、、ちなみに64ビットOS上ですので32ビットOS固有の問題なのかも見えていません。もし可能ならプロジェクトの作成先や環境面などもう少し詳しい情報があればと思います。
-
お忙しいところご丁寧なご返信をいただき、誠にありがとうございます。
説明が不足しており申し訳ありません。こちらの環境は32ビット Windows7です。
また、Visual Studio 2013 Premium Update 4まであてています。
・ビルドの出力先はbin\Releaseになっております。
・<プロジェクトのフォルダ>\WorkerRole1\bin\Releaseにはmsshrtmi.dllが配置されています。
・ご連絡いただきました、<プロジェクトのフォルダ>\csx\Release\roles\WorkerRole1\base\x86にもmsshrtmi.dll配置されていました。
・こちらの環境でも、ユーザフォルダのAppData\Local\Temp\~にはエラーに表示されているフォルダは出来ていない状況でした。
もう少し調べてみます。もしも何かご存知のことありましたらご教示いただけますと幸いです。
- 編集済み Ak-yano-hisys 2015年7月29日 0:51
-
ご返信ありがとうございます。
失礼しました。一度直接参照設定を入れてみようと思い、以下にあるmsshrtmi.dllを参照設定に入れてみたのでした。
C:\Program Files\Microsoft SDKs\Azure\.NET SDK\v2.7\bin\runtimes\base\x86
今もう一度新しいプロジェクトを作ってみたところ、bin\release配下にはmsshrtmi.dllは含まれませんでした。
曖昧な記述をしてしまい、申し訳ありません。
- 編集済み Ak-yano-hisys 2015年7月29日 2:10
-
こんにちは。
StackOverflowで回避策が載っていました。
http://stackoverflow.com/questions/31596327/deploying-to-azure-access-to-the-path-msshrtmi-dll-is-denied
現状のVer(2.7)だと32ビットOS上だとこのエラーのようになるようです。回避策は64ビットOSにするか、バグFix版を待つかになるかと思います。