我有一个构建脚本来修改一些用于工作的Nuget * .nuspec相关性版本 - 但不知何故,它不再存在。我不知道是否因为更新到Windows 10或Powershell版本而更改。打开XML,修改并再次保存
Function ChangeNugetSpecDependencyVersion() {
Param(
[Parameter(Mandatory=$true)]
[string]$filePath,
[Parameter(Mandatory=$true)]
[string]$packageId,
[Parameter(Mandatory=$true)]
[string]$publishVersion
)
[xml] $toFile = (Get-Content $filePath)
$nodes = $toFile.SelectNodes("//package/metadata/dependencies/dependency[starts-with(@id, $packageId)]")
if ($nodes) {
foreach ($node in $nodes) {
$nodeId = $node.id
Write-Host "-- Updating '$nodeId' in '$filePath' to version '$publishVersion'"
$node.version = "[" + $publishVersion +"]"
$toFile.Save($filePath)
}
}
}
# Version
$version = "2.0.0.0"
# Assemblies
$assemblies = "NerveFramework", "NerveFramework.EntityFramework"
# Change dependency version on all depending assemblies
Write-Host "Changing the NuGet Spec version dependencies to '$version'..."
$nuspecFiles = Get-ChildItem $assemblies -Filter "NerveFramework*.nuspec" -Recurse | Resolve-Path -Relative
foreach ($nuspecFile in $nuspecFiles) {
ChangeNugetSpecDependencyVersion $nuspecFile "NerveFramework" $version
}
错误是$toFile.Save($filePath)
,它说:
Exception calling "Save" with "1" argument(s): "En del af stien 'C:\Users\Jan\NerveFramework.EntityFramework\NerveFramework.EntityFramework.nuspec' blev ikke fundet." At C:\GitHub\nerve-framework\BuildFunctions.ps1:58 char:13 + $toFile.Save($filePath) + ~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException
对不起,部分丹麦语言,但它说,它无法找到路径的一部分。
这里有一件事是这条道路:C:\Users\Jan\NerveFramework.EntityFramework\NerveFramework.EntityFramework.nuspec
是错误的。
文件位置是相对于执行命令文件:C:\GitHub\nerve-framework\NerveFramework.EntityFramework\NerveFramework.EntityFramework.nuspec
但它可以打开该文件,但为什么被保存功能则提供了错误的路径?
有了,我得到这个错误:https://gist.github.com/janhartmann/0b1de4d49b5859e794ed – janhartmann
我编辑我的答案。再试一次 –
好东西,现在就开始工作 - 将重写我的其他函数以使用相同的语法。谢啦! – janhartmann