single.php

Visual Studioで[warning MSB3026: …このファイルはロックされています。]が表示される場合の対処法

Visual Studioでビルド時に[warning MSB3026: “apphost.exe” を “AppName.exe” にコピーできませんでした。別のプロセスで使用されているため、プロセスはファイル ‘AppName.exe’ にアクセスできません。 このファイルは “AppName (66900), AppName (58036)” によってロックされています。]エラーが表示される場合の対処法を備忘録的に投稿します。

ファイルがアクセス中のエラー

Visual Studioのビルド時に、[warning MSB3026: “apphost.exe” を “AppName.exe” にコピーできませんでした。別のプロセスで使用されているため、プロセスはファイル ‘AppName.exe’ にアクセスできません。 このファイルは “AppName (66900), AppName (58036)” によってロックされています。]エラーが表示される場合があります。

これは、ビルドを行ったファイルを実行環境にコピーする際に、別のプロセスが利用中でコピーが完了しない場合に表示されるエラーです。

タスクマネージャーなどで閣員すると、該当するアプリ名が起動中のプロセス一覧に表示されるはずです。

デバッグ中にクラッシュしてプロセスだけが残留している場合や、他のアプリから呼び出されたまま終了されていないなど、原因としては様々なことが考えられます。

ビルド前のイベントでタスク終了

毎回、タスクマネージャーで確認するのも面倒なので、ビルド前処理でタスクを終了させておくとエラーを回避できる場合があります。

[ビルド前のイベント]は、[プロジェクト|プロパティ]画面の[ビルド|イベント]画面にあります。

この[ビルド前のイベント]に次のコマンドを追加します。(AppNameはタスクを終了させたいアプリのファイル名と読み替えてください。

taskkill /IM AppName.exe /F

設定すると、ビルド時にコマンドが実行されて終了していないプロセスがタスクに残っている場合に強制的に終了させてからビルドが続行されます。

この設定で、コピーされないエラーのストレスから解放されます。

まとめ

短い記事になりましたが、Visual Studioでビルド時に[warning MSB3026: “apphost.exe” を “AppName.exe” にコピーできませんでした。別のプロセスで使用されているため、プロセスはファイル ‘AppName.exe’ にアクセスできません。 このファイルは “AppName (66900), AppName (58036)” によってロックされています。]エラーが表示される場合の対処法について書きました。

エラーは、ビルドしたファイルをコピーする際に、処理が終了しないのが主な原因です。

ビルド前のイベントで、プロセス名を指定して強制的に終了させることでコピーが出来ないエラーから解放されます。

Visual Studioで[warning MSB3026: …`]が表示される人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です