diff options
author | Matt Ward <ward.matt@gmail.com> | 2014-03-05 19:57:05 +0400 |
---|---|---|
committer | Matt Ward <ward.matt@gmail.com> | 2014-03-05 20:17:50 +0400 |
commit | ece286fc9d5299480dc578e65a38bfb787af437a (patch) | |
tree | 3f7a14e4c8e2ac253133a51587aa4715bfa28be5 /main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs | |
parent | 62118794d416b3e34e066540b8ae2368c89265f6 (diff) |
[NuGet] Fix file changed warning when adding/removing MSBuild import.
Diffstat (limited to 'main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs')
-rw-r--r-- | main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs index 20dc17c31e..cab71b399d 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs @@ -1266,7 +1266,7 @@ namespace MonoDevelop.Projects.Formats.MSBuild // If the project is not new, don't add the default project imports, // just assume that the current imports are correct - UpdateImports (imports, newProject); + UpdateImports (imports, dotNetProject, newProject); foreach (string imp in imports) { if (!currentImports.Contains (imp)) { msproject.AddNewImport (imp, null); @@ -1554,16 +1554,33 @@ namespace MonoDevelop.Projects.Formats.MSBuild buildItem.Condition = pref.Condition; } - void UpdateImports (List<string> imports, bool addItemTypeImports) + void UpdateImports (List<string> imports, DotNetProject project, bool addItemTypeImports) { if (targetImports != null && addItemTypeImports) { - foreach (string imp in targetImports) - if (!imports.Contains (imp)) - imports.Add (imp); + AddMissingImports (imports, targetImports); } foreach (IMSBuildImportProvider ip in AddinManager.GetExtensionObjects ("/MonoDevelop/ProjectModel/MSBuildImportProviders")) { ip.UpdateImports (EntityItem, imports); } + + if (project != null) { + AddMissingImports (imports, project.ImportsAdded); + RemoveImports (imports, project.ImportsRemoved); + project.ImportsSaved (); + } + } + + void AddMissingImports (List<string> existingImports, IEnumerable<string> newImports) + { + foreach (string imp in newImports) + if (!existingImports.Contains (imp)) + existingImports.Add (imp); + } + + void RemoveImports (List<string> existingImports, IEnumerable<string> importsToRemove) + { + foreach (string imp in importsToRemove) + existingImports.Remove (imp); } void ReadBuildItemMetadata (DataSerializer ser, MSBuildItem buildItem, object dataItem, Type extendedType) |