Назад | Перейти на главную страницу

Файл заблокирован только для разработчика, который пытается развернуть

Наши разработчики работают с 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

но ошибка также возникает, если мы не укажем разблокировку.