【发布时间】:2015-08-29 12:30:35
【问题描述】:
我昨天开始使用 powershell,与批处理相比它的简单程度让我感到惊讶。我可以通过在 google 上进行一些搜索来解决大多数问题,但在这种特殊情况下,我只是没有收到任何错误消息。
这是有问题的脚本:
https://github.com/taori/AjaxHub/blob/master/build/executePackaging.ps1
$apiKey = [IO.File]::ReadAllText("publish.apiKey.txt")
foreach ($package in $packages){
[xml]$xml = Get-Content($package + ".nuspec")
$version = $xml.package.metadata.version;
"Setting up packacking for $package $version"
$packagePath = ".\packages\$package\$version";
If(Test-Path $packagePath){
Remove-Item -Recurse -Force $packagePath
}
md -Force $packagePath
$packArguments = "pack -Symbols -Version $version $package.nuspec -OutputDirectory $packagePath";
"Packaging with Nuget.exe $packArguments"
Start-Process -FilePath ".\Nuget.exe" -WindowStyle Hidden -ArgumentList $packArguments -ErrorAction Stop
$pushArguments = "push $packagePath\$package.$version.symbols.nupkg $apiKey"
"Pushing with Nuget.exe $pushArguments"
Start-Process -FilePath ".\Nuget.exe" -WindowStyle Hidden -ArgumentList $pushArguments -ErrorAction Stop
Start-Process -FilePath "https://www.nuget.org/packages/$package"
}
Read-Host -Prompt "Script done. Press <enter>"
只有推送部分不起作用(至少 nuget.org 上没有更新)或产生任何错误。有谁知道如何让它工作或抛出我可以处理的错误?
【问题讨论】:
-
你在调用
nuget.exe后查看$?的值是多少? -
@briantist 没什么可悲的。试图从进程调用中分配返回值并输出它。
-
您可以尝试将
.\Nuget.exe运行为&Nuget.exe,它可能会干净地退出,但会在控制台上打印出您丢失的错误文本。一般来说,我会避免使用Start-Process来启动命令行应用程序。
标签: powershell nuget