private void WatchChanges(BundleCacheItem cacheValue, List <string> files, string bundleRelativePath) { lock (cacheValue.WatchDisposeHandles) { foreach (var file in files) { var watchDisposeHandle = WebContentFileProvider.Watch(file).RegisterChangeCallback(_ => { lock (cacheValue.WatchDisposeHandles) { cacheValue.WatchDisposeHandles.ForEach(h => h.Dispose()); cacheValue.WatchDisposeHandles.Clear(); } BundleCache.Remove(bundleRelativePath); DynamicFileProvider.Delete("/wwwroot/" + bundleRelativePath); //TODO: get rid of wwwroot! }, null); cacheValue.WatchDisposeHandles.Add(watchDisposeHandle); } } }