Closed9

ChocolateyでVimを更新するときにエラー終了する問題の対策方法(gvimext.dllを使っているプロセスを探す)

ピン留めされたアイテム
aikigeaikige

どちらかというと PowerShell スクリプトの方にフォーカスをして記事にまとめました:
https://zenn.dev/aikige/articles/ps-to-find-process-uses-dll

調べたいこと

ChocolateyでVimの更新をしていると、gvimext.dll が利用中なので、更新に失敗したというニュアンスのエラーメッセージが表示され、choco upgrade がエラー終了する。この問題を解決したい。
ついでに、このDLLは何で、誰が使っているのか確認したい。

aikigeaikige

エラーの内容

ERROR: The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: Cannot remove item C:\tools\vim\vim90\GvimExt64\gvimext.dll: Access to the path 'gvimext.dll' is denied.
The upgrade of vim was NOT successful.

aikigeaikige

choco upgrade -y vim --params "/RestartExplorer" としても問題が解決しないので、その他のファイルがDLLをロックしている模様。

aikigeaikige

これで特定した利用プロセスを taskkill などを使って個別にKillすれば、とりあえず問題は解決する。
しかし、できれば chocolatey のスクリプト側で対応してほしいものだ。

このスクラップは3ヶ月前にクローズされました