40

この問題は時々発生します。私たちのビルドマシンは、通常のWindowsファイル共有を介してファイルにアクセスできます。誰かがマシン上のフォルダをリモートで参照し、ウィンドウを一晩開いたままにすると、ビルドは失敗します(現在のように)。エクスプローラーウィンドウは、ソースツリーのサブフォルダーの1つに開いたポイントを残しました。ビルドはソースを削除し、ビルドする前にクリーンチェックアウトを実行します。削除は失敗しています。

今、ビルドを機能させたいと思います。自宅からログインしているので、ビルドマシンを再起動したくありません。マシンを探している人とファイルを把握できず、リモートでマシンを再起動できません。

Windows共有にロックがある場合、ロックプロセスはシステムであるため、通常のロックのようにそれを強制終了することはできないと思います。

マシンを再起動せずに共有フォルダのロックを解除する方法を知っている人はいますか?

4

6 に答える 6

24

解決策を見つけました。

  1. Process Explorerを使用してプロセスを見つけます。

    1. procexp.exeをダウンロードして解凍します。
    2. Process Explorer で、[検索] メニューから [ハンドルまたは DLL を検索...] コマンドを使用します。
    3. 削除に問題があるディレクトリの名前を入力します
    4. その名前に一致する開いているファイルのリストが表示されます。いくつか推測して、どれが削除に失敗しているかを見つけてください。ファイルが Windows 共有によってロックされている場合、ファイルを保持しているプロセスは System
    5. 開いたままにしたディレクトリを書き留めます
  2. Unlocker をダウンロードしてインストールします (警告: マルウェアが含まれているため、リンクは削除されました)。

    1. Unlocker をインストールし、Explorer 拡張機能やその他のジャンクのオプションを無効にします
  3. ディレクトリのロックを解除する

    1. コマンド ウィンドウを開き、C:\Program Files\Unlocker に移動します。
    2. コマンド ウィンドウから Unlocker.exe "the-path-to-the-locked-folder" を実行します。
    3. ロック解除を確認するダイアログが表示されます。ロック解除ボタンを使用してファイルのロックを解除します

これで、ディレクトリのロックが解除され、削除できるようになります。

于 2008-11-26T09:39:53.237 に答える
2

私は同様の問題を抱えていましたが、上記で見たこれらの提案はどれも (元のポスターが示唆していたように) 自動化されたオーバーナイト ビルドには適していないように見えます。

私が試した中で確実に機能すると思われる唯一の方法は、共有自体を削除し、ビルドを作成してから、共有を追加し直すことです。共有を自動的に削除する方法の 1 つを次に示します。

D:\Projects>net share Projects /DELETE /Y

ユーザーはプロジェクトでファイルを開いています。操作を続行すると、ファイルが強制的に閉じられます。

プロジェクトが正常に削除されました。

(注: 共有を自動的に再作成するのは、付与する必要がある特権グループが乱雑な場合は面倒です。)

于 2016-02-03T16:50:37.937 に答える