C# 如何使用powershell更新XML文件中的当前值?

C# 如何使用powershell更新XML文件中的当前值?,c#,xml,powershell,tfs,system.io.file,C#,Xml,Powershell,Tfs,System.io.file,大家好,我不知道以前是否有人问过这个问题,但我需要使用powershell更新xml文件中的两个值我有以下代码它在本地工作但在tfs上不工作我收到以下错误System.Management.Automation.MethodInvocationException:使用“1”参数调用“ReadAllText”异常:“值不能为空。 我有以下代码 $EmployeeData= "C:\files\Employees.xml" $oldEmployeeID= "23" $NewEmployeeID= "

大家好,我不知道以前是否有人问过这个问题,但我需要使用powershell更新xml文件中的两个值我有以下代码它在本地工作但在tfs上不工作我收到以下错误
System.Management.Automation.MethodInvocationException:使用“1”参数调用“ReadAllText”异常:“值不能为空。

我有以下代码

$EmployeeData= "C:\files\Employees.xml"
$oldEmployeeID= "23"
$NewEmployeeID= "25"

$content = [System.IO.File]::ReadAllText($EmployeeData).Replace($oldEmployeeID, $NewEmployeeID)
[System.IO.File]::WriteAllText($EmployeeData, $content)
它在本地工作,但在tfs上崩溃,有人知道原因吗 使用以下错误代码

System.Management.Automation.MethodInvocationException: Exception calling "ReadAllText" with "1" argument(s): "Value cannot be null.

你不需要使用这个。您可以通过类型转换在powershell中直接解析XML:

$EmployeeData= "C:\files\Employees.xml"
$oldEmployeeID= "23"
$NewEmployeeID= "25"

[XML]$content = Get-Content $EmployeeData
然后可以访问$content.elementId$content.nodename

请遵循以供参考


希望有帮助。

如果您想在TFS构建期间更新XML文件中的值/令牌,一种简单的方法是在构建定义中使用or

你能详细说明“在tfs上它不起作用”吗?您是否在TFS构建中包含脚本?你的构建定义怎么样?您使用的是哪个版本的TFS?