src/private/Invoke-GeneratePackagesConfig.ps1
function Invoke-GeneratePackagesConfig { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [string] $OutputPath, [Parameter(Mandatory = $true)] $Packages ) [xml]$doc = New-Object System.Xml.XmlDocument $declaration = $doc.CreateXmlDeclaration("1.0", "UTF-8", $null) $doc.AppendChild($declaration) $packagesRoot = $doc.CreateElement("packages", $null) if ( $Packages -is [PSObject] ) { $Packages.PSObject.Properties | ForEach-Object { $packageNode = $doc.CreateElement("package", $null) $packageNode.SetAttribute("id", $_.Name) $packageNode.SetAttribute("version", $_.Value) $packagesRoot.AppendChild($packageNode) } } else { foreach ($item in $Packages.GetEnumerator()) { $packageNode = $doc.CreateElement("package", $null) $packageNode.SetAttribute("id", $item.Name) $packageNode.SetAttribute("version", $item.Value) $packagesRoot.AppendChild($packageNode) } } $doc.AppendChild($packagesRoot) $doc.Save("$OutputPath\packages.config") } |