public static void WatcherChangesetSent(this IActionLog log, MsBuildFileSystemWatcher.Changeset changeset) { var sb = new StringBuilder(); sb.AppendLine("MsBuildFileSystemWatcher changeset sent.") .AppendWatcherChangesetPart(changeset.AddedFiles, "Added Files:") .AppendWatcherChangesetPart(changeset.RenamedFiles, "Renamed Files:") .AppendWatcherChangesetPart(changeset.RemovedFiles, "Removed Files:") .AppendWatcherChangesetPart(changeset.AddedDirectories, "Added Directories:") .AppendWatcherChangesetPart(changeset.RenamedDirectories, "Renamed Directories:") .AppendWatcherChangesetPart(changeset.RemovedDirectories, "Removed Directories:"); log.Write(LogVerbosity.Normal, MessageCategory.General, sb.ToString()); }
public static void WatcherChangesetSent(this IActionLog log, MsBuildFileSystemWatcher.Changeset changeset) { var sb = new StringBuilder(); sb.AppendLine("MsBuildFileSystemWatcher changeset sent.") .AppendWatcherChangesetPart(changeset.AddedFiles, "Added Files:") .AppendWatcherChangesetPart(changeset.RenamedFiles, "Renamed Files:") .AppendWatcherChangesetPart(changeset.RemovedFiles, "Removed Files:") .AppendWatcherChangesetPart(changeset.AddedDirectories, "Added Directories:") .AppendWatcherChangesetPart(changeset.RenamedDirectories, "Renamed Directories:") .AppendWatcherChangesetPart(changeset.RemovedDirectories, "Removed Directories:"); log.Trace(sb.ToString()); }
private async Task FileSystemChanged(MsBuildFileSystemWatcher.Changeset changeset) { _log.ApplyProjectChangesStarted(); if (_unloadCancellationToken.IsCancellationRequested) { return; } try { using (var access = await _projectLockService.WriteLockAsync(_unloadCancellationToken)) { await access.CheckoutAsync(_inMemoryImportFullPath); _temporaryAddedItemGroup.RemoveAllChildren(); await RemoveFiles(changeset.RemovedFiles, access); await RemoveDirectories(changeset.RemovedDirectories, access); await RenameFiles(changeset.RenamedFiles, access); await RenameDirectories(changeset.RenamedDirectories, access); AddDirectories(changeset.AddedDirectories); AddFiles(changeset.AddedFiles); _log.MsBuildAfterChangesApplied(_inMemoryImport); foreach (var configuredProject in _unconfiguredProject.LoadedConfiguredProjects) { try { var project = await access.GetProjectAsync(configuredProject, _unloadCancellationToken); project.ReevaluateIfNecessary(); } catch (Exception ex) { Trace.Fail("Unable to mark a configuration as dirty" + ex.Message, ex.StackTrace); } } } } catch (Exception ex) { Trace.Fail("Unable to handle file system change:" + ex.Message, ex.StackTrace); } _log.ApplyProjectChangesFinished(); }
public Delay50MsNoFiltering() { _fileSystem = Substitute.For <IFileSystem>(); var watchers = GetWatchersFromMsBuildFileSystemWatcher(_fileSystem); _fileSystemFilter = Substitute.For <IMsBuildFileSystemFilter>(); _fileSystemFilter.IsFileAllowed(Arg.Any <string>(), Arg.Any <FileAttributes>()).ReturnsForAnyArgs(true); _fileSystemFilter.IsDirectoryAllowed(Arg.Any <string>(), Arg.Any <FileAttributes>()).ReturnsForAnyArgs(true); _taskScheduler = new ControlledTaskScheduler(SynchronizationContext.Current); _fileSystemWatcher = new MsBuildFileSystemWatcher(ProjectDirectory, "*", 50, 50, _fileSystem, _fileSystemFilter, Substitute.For <IActionLog>(), _taskScheduler); _taskScheduler.Link(_fileSystemWatcher.SourceBlock, c => { _changeset = c; }); _fileSystemWatcher.Start(); _fileWatcher = watchers.FileWatcher; _directoryWatcher = watchers.DirectoryWatcher; _attributesWatcher = watchers.AttributesWatcher; }
public async Task InitializeAsync() { await _taskScheduler; _changeset = null; }
public async Task InitializeAsync() { await _taskScheduler; _taskScheduler.Link(_fileSystemWatcher.SourceBlock, c => { _changeset = c; }); }
public static MsBuildFileSystemWatcherChangesetAssertions Should(this MsBuildFileSystemWatcher.Changeset token) { return(new MsBuildFileSystemWatcherChangesetAssertions(token)); }