web-dev-qa-db-ja.com

要求された操作は、ユーザーがマップしたセクションが開いているファイルでは実行できません

メインサービスを停止した後、4つのファイルをbinフォルダーにコピーしようとすると、1つのファイル(TexteDll)でエラーが発生します。エラーは次のとおりです。

Cannot copy TexteDll: The requested operation cannot be performed on a file 
with a user-mapped section open

システムのロックが原因である可能性があります。または、おそらく別のプロセスがこのDLLを使用しています。グーグルで検索したところ、システムを再起動すると解決することがありました。

誰かがこれの原因や解決策を提案できますか? TexteDllのプロパティ(一般、バージョン、セキュリティなど)を調べました。すべてが正常に表示されます。

184
peter

私の場合、DebugフォルダでコンパイルされたDLLをロックしていたのはExplorerでした...奇妙ですね。

Unlockerというツールを使用していることがわかりました。

Unlockerで削除する必要がありました。ファイルにロックがかかっていないと言っていた場合でも、その単一のファイルを削除しない限り、フォルダーを削除できませんでした...

その後、コンパイルしました。

編集:

私の場合、これが起こった理由を見つけました。 Visual Studio内のテキストエディターでDLLを開きました...

168
Daniel Lobo
  • 2つ以上のプロジェクト間で参照されているアセンブリバージョンの不一致に関する警告をダブルクリックすると、アセンブリビューウィンドウを閉じるのを忘れて、他のタブの中でそこに留まることがあります...そのため、VSによってアセンブリがロックされ、それを理解するのにかなり時間がかかった:)

    VSが提供するパワーに注意してください;)

  • 別のダミーシナリオ。時々、objフォルダ全体を削除するか、ロックされたファイルがこのくだらないエラーに役立つと警告されたファイルだけを削除します。
70

vS上のすべてのドキュメントを閉じて、再構築を再試行してください。動作しない場合は、VSを再起動します。この問題は、DLLファイルのロックに関連しています。

32
cihata87

Visual Studioを閉じ、binを削除し、リリースフォルダーをデバッグし、Visual Studioプロジェクトを再度開始します。それは私の問題を修正しました

10
user2038221

私は同じ問題を抱えており、私の場合、既存の出力ファイルが他のアプリケーションによってロックされているように見えました。

OpenedFilesViewを使用して、出力ファイルをロックしているアプリケーションを確認できます。 http://www.nirsoft.net/utils/opened_files_view.html

10
bozydar.sz

他の人は、このエラーが別のアプリケーションがファイルをロックしていることが原因であることをすでに確立しています。 git diffは、終了するまでファイルもロックすることを指摘したかっただけです。私の場合、これが原因です。

9
andrew.cuthbert

私は開発者であり、Unlockerのようなレジストリに挿入されたアプリは好きではありません。 SysInternals Process Explorer を使用して、どのプロセスがdll Find > Find Handle or Dll [Ctrl-F]をロックし、プロセスを強制終了しました。

8
guneysus

私の場合、ファイルをロックしていたハングしたMSBuild.exeプロセスを強制終了しなければなりませんでした(Visual Studioを閉じた後もそこにありました)。

6
t3chb0t

ウイルス対策ソフトウェアを実行していますか? AVソフトウェア(または他のソフトウェア)がファイルマッピングAPIを使用してファイルを読み取っていたために問題が発生した可能性があります。

5
Eoin Campbell

同じ問題がありました。どのように解決したか:

  1. 「タスクマネージャー」を開く
  2. タスク「Explorer.exe」を終了します
  3. 「ファイル」をクリックします->新しいタスクを作成します-「Explorer.exe」と入力します-> OK
  4. 私のプロジェクトをきれいにしてください
4
user10991945

同じ問題がありました。再起動はうまくいきませんでした。 VBSCompilerというプロセスがタスクマネージャーで実行されていました。このエラーを修正するには、プロセスを終了する必要がありました。

3
Nirjhar Vermani

私にとっての解決策は、VSのすべてのインスタンスを閉じて、ハングしているdevenv.exeプロセスを強制終了することでした。

2
user2338408

ここに投稿されたソリューションはどれも私にとってはうまくいきませんでした。 devenv.exe(Visual Studio)がファイルをロックしていましたが、再起動すると再ロックされました。

奇妙なことに、Windowsは(ごみ箱への)ファイルの削除を許可しませんが、Shift + Delete(完全削除)は機能しました。

2
makhdumi

Objフォルダーを削除して再構築するとうまくいきました

2
colmde

Visual Studioを閉じて、管理者として実行します。それは私の問題を修正しました。

2
Sanjay Ghinaiya

AntでDot Netアプリケーションをビルドすると、これらのエラーが発生していました。

私の場合、それは企業のバックアップソフトウェアであるSymantec DLO Agentでした。それを停止して、ウイルス対策ソフトウェアのディレクトリを除外し、Visual Studioを閉じると動作するようです。

1
Robert Bratton

私にとっての解決策は、コンピューターを再起動することでした。

1
ML13

私の場合、プロジェクトルートのobjフォルダを削除し、プロジェクトを再構築すると問題が解決しました!!!

1
Ali Rasouli

2016年に Andrew Cuthbert によって 指摘 が終了するまでgit diffもファイルをロックしていました。

Git 2.23(2019年第3四半期)には当てはまりません

commit 3aef54e (2019年7月11日)by Johannes Schindelin(dscho を参照してください。
J-C浜野-gitster- in commit d9beb46 、2019年7月25日)

diff:外部diffを実行する前のmunmap()ファイルの内容

たとえば、diff toolから外部diffを実行する場合、問題のファイルを書きたいと想定するのは安全です。

したがって、git diff自体が問題のファイルへの開いているハンドルを保持していないことを確認しましょう。

実際、外部diffは書き込みたばかりのファイルを使用するため、ファイルペアをすぐに解放します。したがって、ファイルの内容をメモリに保持する必要はありません。

これにより git-for-windows#1315 が修正されます

1
VonC

今日も同じエラーが発生しました。プロジェクトを再構築することでこの問題を解決しました。

このエラーが発生し、FxCopが私のプロジェクトに対して実行されていたという問題が判明しました。 FxCopを閉じてから、再度コンパイルできました。

0
Tim

Temporary ASP.NET Filesフォルダー内のファイルを削除するWebアプリケーションの場合、解決策になる可能性があります。

0
suphero

AQ Timeなどのプロファイラーを使用している場合、これらもファイルをロックしている可能性があります。この場合の解決策は、プロファイラーを再起動するか、プロファイラーから問題のアセンブリを単にアンロード/ロードすることです。 AQ Timeについては、しばらくしてからファイルを解放していることに気付きましたが、私は一生そのタイムアウトが何であるかを伝えることはできません。ランダムのようです

0

このエラーは、別のコンソールで実行中の「more」と問題のファイルが原因で発生しました。おっとっと。

0
ade jones