Avoid modifying csproj globbing includes
Check if the found globbing include already matches the new path on moving scripts to avoid modifying users' csproj files.
This commit is contained in:
parent
fa3fc6ff0d
commit
ced4f3519d
1 changed files with 14 additions and 1 deletions
|
@ -77,6 +77,19 @@ namespace GodotTools.ProjectEditor
|
||||||
if (item == null)
|
if (item == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// Check if the found item include already matches the new path
|
||||||
|
var glob = MSBuildGlob.Parse(item.Include);
|
||||||
|
if (glob.IsMatch(normalizedNewInclude))
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Otherwise, if the item include uses globbing it's better to add a new item instead of modifying
|
||||||
|
if (!string.IsNullOrEmpty(glob.WildcardDirectoryPart) || glob.FilenamePart.Contains("*"))
|
||||||
|
{
|
||||||
|
root.AddItem(itemType, normalizedNewInclude.RelativeToPath(dir).Replace("/", "\\"));
|
||||||
|
root.Save();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
item.Include = normalizedNewInclude.RelativeToPath(dir).Replace("/", "\\");
|
item.Include = normalizedNewInclude.RelativeToPath(dir).Replace("/", "\\");
|
||||||
root.Save();
|
root.Save();
|
||||||
}
|
}
|
||||||
|
@ -315,7 +328,7 @@ namespace GodotTools.ProjectEditor
|
||||||
|
|
||||||
// Godot API References
|
// Godot API References
|
||||||
|
|
||||||
var apiAssemblies = new[] {ApiAssemblyNames.Core, ApiAssemblyNames.Editor};
|
var apiAssemblies = new[] { ApiAssemblyNames.Core, ApiAssemblyNames.Editor };
|
||||||
|
|
||||||
RemoveElements(root.ItemGroups.SelectMany(g => g.Items)
|
RemoveElements(root.ItemGroups.SelectMany(g => g.Items)
|
||||||
.Where(i => i.ItemType == "Reference" && apiAssemblies.Contains(i.Include)));
|
.Where(i => i.ItemType == "Reference" && apiAssemblies.Contains(i.Include)));
|
||||||
|
|
Loading…
Reference in a new issue