この問題はときどき発生します。ビルドマシンは、通常のWindowsファイル共有を介してファイルにアクセスできます。誰かがマシン上でリモートでフォルダーを参照し、ウィンドウを一晩開いたままにすると、ビルドは失敗します(現在のように)。開いたままのエクスプローラーウィンドウは、ソースツリーのサブフォルダーの1つをポイントします。ビルドはソースを削除し、ビルドの前にクリーンチェックアウトを実行します。削除は失敗しています。
今、ビルドを機能させたいと思います。私は自宅からログインしていますが、ビルドマシンを再起動したくありません。マシンを探している人とファイルを把握することができず、マシンをリモートでリブートすることもできません。
Windows共有にロックがある場合、ロックプロセスはシステムであるため、通常のロックのように、それを強制終了することはできません。
誰もがマシンを再起動することなく共有フォルダのロックを解除する方法を知っていますか?
ソリューションを見つけました。
Process Explorer を使用してプロセスを見つけます。
Unlockerをダウンロードしてインストールします(Warning:マルウェアが含まれているため、リンクは削除されました)
ディレクトリのロックを解除します
これでディレクトリのロックが解除され、削除できるようになりました。
ネットワーク上でファイルを共有するサーバーの管理者である場合、Windowsの組み込み機能を使用できます。
お役に立てれば。
プロセスハッカーを試す: https://wj32.org/processhacker/
プロセスハッカーは、ステロイドのプロセスエクスプローラーに似ています。
問題のプロセスをfindするには、CTRL + Fを押すか、[DLLのハンドルを検索]ボタンをクリックしてファイル名を検索します。
[ハンドルの検索]ダイアログでファイルを見つけたら、そのファイルを右クリックして[閉じる]を選択します。 (少なくともv2.39.124の場合)
古いバージョンでは、プロセスのコンテキストメニューに「ターミネーター」オプションがありました。問題のプロセスを右クリックします-> Miscellaneous
-> Terminator
->終了方法を選択します。一部は危険な可能性があり、意図しない結果になる可能性があることに注意してください。
私は同様の問題を抱えていましたが、上記の提案はいずれも自動ロックオーバービルドには適していません(元のポスターが暗示しているように)。
確実に機能すると思われる唯一の方法は、共有自体を削除し、ビルドを作成してから、共有を追加し直すことです。共有を自動的に削除する1つの方法を次に示します。
D:\ Projects> net share Projects/DELETE/Y
ユーザーはプロジェクトでファイルを開いています。操作を続行すると、ファイルが強制的に閉じられます。
プロジェクトは正常に削除されました。
(注:共有する必要がある特権グループが面倒な場合、共有を再度自動的に作成するのは面倒です。)
OpenFiles.exe と Handle.exe の両方を使用することで、任意の順序で実行でき、リソースを完全にロック解除できます。
OpenFiles:ファイル共有セッションを切断するには
Handle.exe:開いているハンドルを解放します(システムプロセスであるため、pid4に属するハンドルを閉じないでください)
Powershell、バッチ、または任意の言語を使用して、これを自動化できます。
もう1つのオプションは、Windows Vista以降、システムに組み込まれているWindowsツールを使用することです。
リソースの監視:perfmon.exe /res
抽出元: Http://www.sysadmit.com/2017/06/windows-how-to-know-that-process-has-open-a-file.html