private void AddFolder(string fullPath, Dictionary <string, bool> projectFiles = null) { List <string> filesAndEmptyFolders = FolderUtility.GetFilesAndEmptyFoldersRecursively(fullPath, "*.*", _rsprojPathExclusion).ToList(); filesAndEmptyFolders.Remove(FileSystemPath); filesAndEmptyFolders.Remove(Solution.FileSystemPath); filesAndEmptyFolders.Remove(Solution.FileSystemPath + ".user"); foreach (string fileSystemPath in filesAndEmptyFolders) { if (Directory.Exists(fileSystemPath)) { if (projectFiles != null && !projectFiles.ContainsKey(fileSystemPath)) { continue; } _items.Add(new ProjectFolder(fileSystemPath, true, this)); if (_initialized) { _isDirty = true; } } else { bool included = true; bool ignoreDecompileErrors = false; if (projectFiles != null) { if (projectFiles.ContainsKey(fileSystemPath)) { ignoreDecompileErrors = projectFiles[fileSystemPath]; } else { included = false; } } AddFile(fileSystemPath, included, ignoreDecompileErrors); } } }