Принятый ответ сработал для меня, если у меня была одна файловая операция, но когда я выполнял несколько операций Set-Content или Add-Content с одним файлом, я все равно получал ошибку «используется другим процессом».
В конце концов мне пришлось записать временный файл, а затем скопировать временный файл в исходный файл:
(Get-Content C:\Path\File.cs) | foreach {$_ -replace "document.getElementById", '$'} | Set-Content C:\Path\File.cs.temp
Copy-Item C:\Path\File.cs.temp C:\Path\File.cs