Mon script powershell s'exécute sans erreur signalée dans le fichier journal, mais l'étape de génération TFS 2015 signale une erreur. Dois-je effectuer un rappel spécial?L'étape Powershell de TFS 2015 Build signale l'échec mais n'a pas d'erreur
Il s'agit d'une nouvelle génération de style, pas basée sur XAML.
Le script n'a rien de spécial, il appelle robocopy, ce qui se passe avec succès.
est ici le script:
[CmdletBinding()]
param (
[string]$localWorkspace,
[string]$destination
)
begin{}
process
{
try
{
## Script
$ServiceDirs = Get-ChildItem $localWorkspace -Recurse | ?{ $_.PSIsContainer -eq $True -and $_.Name -match "^Service$" } | % { $_.FullName }
$serviceCollection = @{}
foreach ($Service in $ServiceDirs)
{
$ServiceName = Get-ChildItem $Service | ?{$_.Name -match ".*\.csproj$" } | % { $_.BaseName }
$binpath = ($service + "\bin\release")
$serviceCollection.Add($serviceName , $binpath)
}
$serviceCollection.GetEnumerator() | % {
Write-Verbose "Processing service: $($_.key)"
$currentDestination = ($destination + "\" + $_.key)
$output = robocopy $_.value $currentDestination /MIR /NFL /NDL /NJH /NJS /nc /ns /np
}
}
catch
{
write-host "Caught an exception:"
write-host "Exception Type: $($_.Exception.GetType().FullName)"
write-host "Exception Message: $($_.Exception.Message)"
}
}
end{}
Je peux voir tous les résultats robocopy, si j'Unsilence et utilisation/DEBUG et aucun des prises dans le journal TFS construire.
Etrangement, quand je force une erreur, le catch s'exécute et l'étape rapporte le succès.
Le message d'erreur est signalée:
Tâche PowerShell a échoué. Cela a causé l'échec du travail. Regardez les journaux pour la tâche pour plus de détails.
Avez-vous essayé d'activer le débogage? Ajoutez une variable "system.debug" à true ... –