我有一個構建腳本來修改一些用於工作的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