Наши разработчики работают с VisualStudio 2017
Они используют написанную мной функцию PowerShell после сборки для публикации приложения в правильном месте назначения.
Иногда (1 раз из 100) возникает следующая ошибка:
Copy-Item : The process cannot access the file 'X:\xy\application.exe' because it is
9> being used by another process.
Дело в том, что он не используется другим процессом. Любой другой пользователь (например, я) может переименовать файл в месте назначения, удалить его или что-то еще.
Когда разработчик перезагружает свой компьютер, он может опубликовать приложение без проблем.
Мне кажется, что его файловая система что-то испортила. мы попытались
taskkill /im explorer.exe /f && start "" explorer.exe
но это не помогло.
Если разработчик смотрит в место назначения с помощью своего проводника, файл назначения присутствует для разработчика, даже после того, как я его удалил.
Как это может быть? И как это исправить?
Сама функция PowerShell очень легкая. В основном это делается для развертывания:
Write-Host "Starting Copying files to $d"
$Copy = Copy-Item $FilesToPublish $d -Force -Recurse
Write-Host "Finished Copying files to $d"
если указано (и было указано), функция также удалит все блокировки для пункта назначения
Get-SmbOpenFile -CimSession $Session | ? { $_.Path -like "$EndPath*" } | Close-SmbOpenFile -Force -PassThru
но ошибка также возникает, если мы не укажем разблокировку.