我必须在部署到群集时向应用程序清单xml文件添加其他参数。在VSTS中配置了一个发布管道,我必须添加一个任务。
如何实现这一目标?我应该使用Powershell内联脚本吗?如果是这样,我如何修改工件目录中的文件?
@Karthick,感谢您的回答,但我在保存xml时遇到了问题。我确实将Working文件夹设置为 $(build.artifactstagingdirectory)
$appManifestFile = $(build.artifactstagingdirectory)\pkg\ApplicationManifest.xml
$xml = (Get-Content $appManifestFile) -as [Xml]
$newNode = $xml.CreateElement("Parameter")
$newNode.SetAttribute("Name","Test")
$newNode.SetAttribute("Value","Test")
Write-Host $newNode
$xml.ApplicationManifest.Parameters.AppendChild($newNode)
$xml.Save($appManifestFile)
如您所见,我直接从工件访问该文件,然后对其进行修改。此脚本在本地工作正常,但在管道中文件保持不变。我错过了什么吗?
答案 0 :(得分:1)
您可以使用构建事件执行How to: Specify Build Events (C#)
或强>
如果您希望对VSTS构建管道执行相同操作,可以通过
添加powershell 步骤1。获取路径到您的工件放置位置
2. 将路径传递给您的电源shell脚本
确保将工作目录设置为工件放置位置。这是powershell脚本将被执行的地方
param ( [string]$appManifestFile = "" ) $appManifestFile = $appManifestFile + "\app.manifest" echo "the path is set to : $appManifestFile" $xml = (Get-Content $appManifestFile) -as [Xml] $newNode = $xml.CreateElement("Parameter") $newNode.SetAttribute("Name","Test") $newNode.SetAttribute("Value","Test") $xml.DocumentElement.AppendChild($newNode) $xml.Save($appManifestFile)