Powershell File Watcher не улавливает изменения файлов, сделанные в Visual Studio

У меня есть процесс powershell, который следит за файлами SQL (в проекте базы данных), а затем запускает действие при изменении файла. Базовая настройка приведена ниже.

$global:SQLFileWatcher = New-Object IO.FileSystemWatcher $rootFolder, $sqlFilter -Property @{ 
         IncludeSubdirectories = $true
         NotifyFilter = [IO.NotifyFilters]'LastWrite'
   }

   $onSqlCreated = Register-ObjectEvent $global:SQLFileWatcher Changed -SourceIdentifier SqlFileChanged -Action {
    #Only called when a new file is added to DB project
    Write-Host "HERE"
}

При внесении изменений в существующий файл, уже созданный в проекте базы данных Visual Studio, он не запускает наблюдатель за файлами, как если бы время LastWrite не обновлялось. Если я открою Notepad ++ и отредактирую, это будет работать нормально. Кроме того, если я добавляю новый файл SQL (в проект базы данных), он запускает событие наблюдателя за файлом при создании И любых обновлениях этого файла, что было самой странной частью.

Почему он не обновляет атрибуты файла в существующем файле, а только в новых файлах? Или, может быть, лучше задать вопрос: есть ли лучшая настройка NotifyFilter вместо «LastWrite»?


person Brian Mains    schedule 10.04.2018    source источник