2018年12月26日水曜日

VisualStudio(VS)でビルド・上書きでアクセスが拒否されて失敗する場合の解決 方法

event_note12月 26, 2018

こんにちは。
先日、お仕事でVisualStudio2017を使いました。

他のサーバで使っていたVBウェブアプリのソリューションフォルダを丸ごとコピーして、別サーバに貼り付けしたところ、ビルド失敗…。解決できたので忘れないようにメモしておこうと思います。
キャプチャとかないのでうろ覚えですが参考にしてみてください。

VSでビルド・上書きの時にアクセスが拒否される

ビルドの時に、ファイル書き込みができなかったのですが、フォルダにAuthenticated Usersがアクセス(変更)できるようにしたら解決しましたよ。詳細はこんな感じです。↓

アクセス拒否の現象

・ソリューション内のソースを編集し、ビルドしたが「アクセスが拒否されました」と何件もエラー(Warning?)が出力された。
結果、ビルド失敗。
・ソースファイルを修正し、保存ボタン(フロッピーの形の)を押したところ、「名前を付けて保存」のウィンドウが表示される。
名前を変えてはみたが、エラーメッセージが表示され保存ができなかった。

解決方法

ソリューションが保存されているフォルダにAuthenticated Usersがアクセス許可(変更)できるようにすることで無事、ビルドできるようになりました。
変更できる権限がないとだめです。

以下、設定手順です。

1.編集ボタンをクリック

2.追加をクリック

3.詳細設定クリック

4.検索をクリック。検索結果からAuthenticated Usersを選択してOKボタンを押す。

5.Authenticated Usersを選択し、アクセス許可「変更」にチェックを入れる。そしてOKを押して画面を閉じる。

Authenticated Usersでだめでもコピー元のアクセス権と同じようにフォルダのアクセス権を設定すると解決するかもしれないですね。

原因

ソリューションのフォルダを元サーバからコピーしたときに、Authenticated Usersのアクセス許可が消えており、
ビルドの時にファイルを新規作成したり上書きできずにエラーが出ていたみたいです。。

元サーバ→自分のPC→新しいサーバ と自分のPCを経由したのがいけなかったのかなぁ?
アクセス権の設定がうまく引き継がれなかったみたいです。
他のサーバへ直接コピーしたときはうまくいったような記憶があるのですが…。

ちなみに、Authenticated Usersについて調べましたがよくわかりませんでした。なんなの?

まとめ

ソリューションフォルダを別サーバにコピーしたときは、フォルダのアクセス権に気を付けましょう♪