File tree Expand file tree Collapse file tree
tests/Paket.Tests/ProjectFile Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -177,6 +177,19 @@ type ProjectFile =
177177 | None ->
178178 let firstNode = fileItemsInSameDir |> Seq.head
179179 firstNode.ParentNode.InsertBefore( libReferenceNode, firstNode) |> ignore
180+
181+ let paketNodes =
182+ this.FindPaketNodes( " Compile" )
183+ @ this.FindPaketNodes( " Content" )
184+
185+ //remove uneeded files
186+ for paketNode in paketNodes do
187+ match getAttribute " Include" paketNode with
188+ | Some path ->
189+ if not ( fileItems |> List.exists ( fun fi -> fi.Include = path))
190+ then paketNode.ParentNode.RemoveChild( paketNode) |> ignore
191+ else ()
192+ | _ -> ()
180193
181194 this.DeleteIfEmpty( " PropertyGroup" )
182195 this.DeleteIfEmpty( " ItemGroup" )
Original file line number Diff line number Diff line change 3030 <StartArguments >update</StartArguments >
3131 <StartAction >Project</StartAction >
3232 <StartProgram >paket.exe</StartProgram >
33- <StartWorkingDirectory >c:\code\Paket09x </StartWorkingDirectory >
33+ <StartWorkingDirectory >D:\Appdev\officeprovider\ </StartWorkingDirectory >
3434 </PropertyGroup >
3535 <PropertyGroup Condition =" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " >
3636 <DebugType >pdbonly</DebugType >
Original file line number Diff line number Diff line change @@ -99,4 +99,40 @@ let ``should maintain order when updating project file items`` () =
9999 " WordProvider.fs"
100100 " ProviderEntryPoint.fs"
101101 ]
102+ CollectionAssert.AreEqual( expected, actual)
103+
104+ [<Test>]
105+ let ``should remove missing files that exist in the project`` () =
106+
107+ let projFile = ProjectFile.Load( " ./ProjectFile/TestData/MaintainsOrdering.fsprojtest" ) .Value
108+ let fileItems = [
109+ { BuildAction = " Compile" ; Include = " DebugProvidedTypes.fs" ; Link = None }
110+ { BuildAction = " Compile" ; Include = " ProvidedTypes.fs" ; Link = None }
111+ { BuildAction = " Content" ; Include = " ProvidedTypes.fsi" ; Link = None }
112+ ]
113+ projFile.UpdateFileItems( fileItems, false )
114+
115+ let rec nodes node =
116+ seq {
117+ for node in node |> Seq.cast< XmlNode> do
118+ if node.Name = " Compile" || node.Name = " Content"
119+ then yield Paket.Xml.getAttribute " Include" node
120+ yield ! nodes node
121+ }
122+
123+ let actual =
124+ nodes projFile.Document
125+ |> Seq.choose id
126+ |> Seq.toList
127+ let expected =
128+ [
129+ " ProvidedTypes.fsi"
130+ " ProvidedTypes.fs"
131+ " DebugProvidedTypes.fs"
132+ " QuotationHelpers.fs"
133+ " CommonTypes.fs"
134+ " ExcelProvider.fs"
135+ " WordProvider.fs"
136+ " ProviderEntryPoint.fs"
137+ ]
102138 CollectionAssert.AreEqual( expected, actual)
You can’t perform that action at this time.
0 commit comments