【发布时间】:2015-11-30 12:15:57
【问题描述】:
我有一个构建脚本来修改一些曾经可以工作的 Nuget *.nuspec 依赖版本 - 但不知何故它不再起作用了。不知道是因为我更新到 Windows 10 还是 Powershell 版本改变了。
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),它说:
使用“1”参数调用“保存”的异常:“En del af stien 'C:\Users\Jan\NerveFramework.EntityFramework\NerveFramework.EntityFramework.nuspec' blev ikke fundet。”在 C:\GitHub\nerve-framework\BuildFunctions.ps1:58 字符: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
但是它可以打开文件,但是为什么保存功能提供了错误的路径?
【问题讨论】:
标签: powershell