Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Ward <ward.matt@gmail.com>2014-03-05 19:57:05 +0400
committerMatt Ward <ward.matt@gmail.com>2014-03-05 20:17:50 +0400
commitece286fc9d5299480dc578e65a38bfb787af437a (patch)
tree3f7a14e4c8e2ac253133a51587aa4715bfa28be5 /main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs
parent62118794d416b3e34e066540b8ae2368c89265f6 (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.cs27
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)