diff --git a/vsintegration/src/vs/FsPkgs/FSharp.Project/Common.Source.CSharp/Project/ProjectNode.cs b/vsintegration/src/vs/FsPkgs/FSharp.Project/Common.Source.CSharp/Project/ProjectNode.cs index ea2e4d01e52..b8ff1de42e5 100644 --- a/vsintegration/src/vs/FsPkgs/FSharp.Project/Common.Source.CSharp/Project/ProjectNode.cs +++ b/vsintegration/src/vs/FsPkgs/FSharp.Project/Common.Source.CSharp/Project/ProjectNode.cs @@ -5213,12 +5213,13 @@ internal int DoAddItem(uint itemIdLoc, VSADDITEMOPERATION op, string itemName, u } else if (op == VSADDITEMOPERATION.VSADDITEMOP_OPENFILE) { - // When called via automation API, there seem to always be exactly one element in the array - string file = files[0]; - HierarchyNode n = this.NodeFromItemId(itemIdLoc); - string relativeFolder = Path.GetDirectoryName(n.Url); - string relPath = PackageUtilities.MakeRelativeIfRooted(Path.Combine(relativeFolder, Path.GetFileName(file)), this.BaseURI); - MoveFileToBottomIfNoOtherPendingMove(relPath); + foreach (string file in files) + { + HierarchyNode n = this.NodeFromItemId(itemIdLoc); + string relativeFolder = Path.GetDirectoryName(n.Url); + string relPath = PackageUtilities.MakeRelativeIfRooted(Path.Combine(relativeFolder, Path.GetFileName(file)), this.BaseURI); + MoveFileToBottomIfNoOtherPendingMove(relPath); + } } else if (op == VSADDITEMOPERATION.VSADDITEMOP_LINKTOFILE) {