I am working on an azure devops pipeline, and utilizing PSDepend to prefetch build dependencies on a self hosted build environment.
I have noticed that when invoke-psdepend is called using an input object (using the installimport-hashtable parameter set), it is failing with the following error:
Cannot convert value 'PSDepend.Format.ps1xml' to type 'System.Version'
Error Record and stack trace below:
System.ArgumentException: Cannot convert value 'PSDepend.Format.ps1xml' to type 'System.Version'.
at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord)
TargetObject: PSDepend.Format.ps1xml
CategoryInfo: InvalidArgument: (PSDepend.Format.ps1xml:String) [Validate-VersionParameters], ArgumentException
FullyQualifiedErrorId: InvalidVersion,Validate-VersionParameters
InvocationInfo: System.Management.Automation.InvocationInfo
ParameterValues: System.Collections.Hashtable
MyCommand: Validate-VersionParameters
BoundParameters: System.Collections.Generic.Dictionary2[System.String,System.Object] UnboundArguments: ScriptLineNumber: 9688 OffsetInLine: 33 HistoryId: 1 ScriptName: C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2.5\PSModule.psm1 Line: $ValidationResult = Validate-VersionParameters -CallerPSCmdlet $PSCmdlet
PositionMessage: At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2.5\PSModule.psm1:9688 char:33
'+ ... dationResult = Validate-VersionParameters -CallerPSCmdlet $PSCmdlet `
'+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PSScriptRoot: C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2.5
PSCommandPath: C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2.5\PSModule.psm1
InvocationName: Validate-VersionParameters
PipelineLength: 0
PipelinePosition: 0
ExpectingInput: False
CommandOrigin: Internal
DisplayScriptPosition:
ScriptStackTrace: at ThrowError, C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2.5\PSModule.psm1: line 7115
at ValidateAndGet-VersionPrereleaseStrings, C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2.5\PSModule.psm1: line 8360
at Validate-VersionParameters, C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2.5\PSModule.psm1: line 7444
at Install-Module, C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2.5\PSModule.psm1: line 9688
at , C:\Program Files\WindowsPowerShell\Modules\PSDepend\0.3.8\PSDependScripts\PSGalleryModule.ps1: line 302
at Invoke-DependencyScript, C:\Program Files\WindowsPowerShell\Modules\PSDepend\0.3.8\Public\Invoke-DependencyScript.ps1: line 195
at Invoke-PSDepend, C:\Program Files\WindowsPowerShell\Modules\PSDepend\0.3.8\Public\Invoke-PSDepend.ps1: line 295
I ran invoke-psdepend in verbose mode, and got this additional output:
VERBOSE: Processed the dependency 'FormatsToProcess'
VERBOSE: Running Invoke-DependencyScript with ParameterSetName 'Map' and params:
Key Value
'--- -----
PSDependAction {Install, Import}
PSDependTypePath C:\Program Files\WindowsPowerShell\Modules\PSDepend\0.3.8\PSDependMap.psd1
Dependency @{DependencyFile=Hashtable; DependencyName=FormatsToProcess; DependencyType=PSGalleryModule;
Name=F...
VERBOSE: Dependencies:
DependencyFile : Hashtable
DependencyName : FormatsToProcess
DependencyType : PSGalleryModule
Name : FormatsToProcess
Version : PSDepend.Format.ps1xml
Parameters :
Source :
Target :
AddToPath :
Tags :
DependsOn :
PreScripts :
PostScripts :
Credential :
PSDependOptions :
Raw :
VERBOSE: Searching for C:\Program Files\WindowsPowerShell\Modules\PSDepend\0.3.8\PSDependScripts\PSGalleryModule.ps1
VERBOSE: Searching for PSGalleryModule.ps1
VERBOSE: Get-Parameters for C:\Program
Files\WindowsPowerShell\Modules\PSDepend\0.3.8\PSDependScripts\PSGalleryModule.ps1\PSGalleryModule.ps1
VERBOSE: Found parameters [AcceptLicense AllowClobber AllowPrerelease Dependency Import PSDependAction Repository
SkipPublisherCheck]
VERBOSE: Invoking 'C:\Program Files\WindowsPowerShell\Modules\PSDepend\0.3.8\PSDependScripts\PSGalleryModule.ps1' with
parameters
Name Value
'---- -----
Dependency @{DependencyFile=Hashtable; DependencyName=FormatsToProcess;
DependencyType=PSGallery...
PSDependAction {Install, Import}
VERBOSE: Getting dependency [FormatsToProcess] from PowerShell repository [PSGallery]
VERBOSE: Installing [FormatsToProcess] with scope [AllUsers]
Any ideas on what is going on here?
I am working on an azure devops pipeline, and utilizing PSDepend to prefetch build dependencies on a self hosted build environment.
I have noticed that when invoke-psdepend is called using an input object (using the installimport-hashtable parameter set), it is failing with the following error:
Cannot convert value 'PSDepend.Format.ps1xml' to type 'System.Version'
Error Record and stack trace below:
System.ArgumentException: Cannot convert value 'PSDepend.Format.ps1xml' to type 'System.Version'.
at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord)
TargetObject: PSDepend.Format.ps1xml
CategoryInfo: InvalidArgument: (PSDepend.Format.ps1xml:String) [Validate-VersionParameters], ArgumentException
FullyQualifiedErrorId: InvalidVersion,Validate-VersionParameters
InvocationInfo: System.Management.Automation.InvocationInfo
ParameterValues: System.Collections.Hashtable
MyCommand: Validate-VersionParameters
BoundParameters: System.Collections.Generic.Dictionary
2[System.String,System.Object] UnboundArguments: ScriptLineNumber: 9688 OffsetInLine: 33 HistoryId: 1 ScriptName: C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2.5\PSModule.psm1 Line: $ValidationResult = Validate-VersionParameters -CallerPSCmdlet $PSCmdletPositionMessage: At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2.5\PSModule.psm1:9688 char:33
'+ ... dationResult = Validate-VersionParameters -CallerPSCmdlet $PSCmdlet `
'+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PSScriptRoot: C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2.5
PSCommandPath: C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2.5\PSModule.psm1
InvocationName: Validate-VersionParameters
PipelineLength: 0
PipelinePosition: 0
ExpectingInput: False
CommandOrigin: Internal
DisplayScriptPosition:
ScriptStackTrace: at ThrowError, C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2.5\PSModule.psm1: line 7115
at ValidateAndGet-VersionPrereleaseStrings, C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2.5\PSModule.psm1: line 8360
at Validate-VersionParameters, C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2.5\PSModule.psm1: line 7444
at Install-Module, C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2.5\PSModule.psm1: line 9688
at , C:\Program Files\WindowsPowerShell\Modules\PSDepend\0.3.8\PSDependScripts\PSGalleryModule.ps1: line 302
at Invoke-DependencyScript, C:\Program Files\WindowsPowerShell\Modules\PSDepend\0.3.8\Public\Invoke-DependencyScript.ps1: line 195
at Invoke-PSDepend, C:\Program Files\WindowsPowerShell\Modules\PSDepend\0.3.8\Public\Invoke-PSDepend.ps1: line 295
I ran invoke-psdepend in verbose mode, and got this additional output:
VERBOSE: Processed the dependency 'FormatsToProcess'
VERBOSE: Running Invoke-DependencyScript with ParameterSetName 'Map' and params:
Key Value
'--- -----
PSDependAction {Install, Import}
PSDependTypePath C:\Program Files\WindowsPowerShell\Modules\PSDepend\0.3.8\PSDependMap.psd1
Dependency @{DependencyFile=Hashtable; DependencyName=FormatsToProcess; DependencyType=PSGalleryModule;
Name=F...
VERBOSE: Dependencies:
DependencyFile : Hashtable
DependencyName : FormatsToProcess
DependencyType : PSGalleryModule
Name : FormatsToProcess
Version : PSDepend.Format.ps1xml
Parameters :
Source :
Target :
AddToPath :
Tags :
DependsOn :
PreScripts :
PostScripts :
Credential :
PSDependOptions :
Raw :
VERBOSE: Searching for C:\Program Files\WindowsPowerShell\Modules\PSDepend\0.3.8\PSDependScripts\PSGalleryModule.ps1
VERBOSE: Searching for PSGalleryModule.ps1
VERBOSE: Get-Parameters for C:\Program
Files\WindowsPowerShell\Modules\PSDepend\0.3.8\PSDependScripts\PSGalleryModule.ps1\PSGalleryModule.ps1
VERBOSE: Found parameters [AcceptLicense AllowClobber AllowPrerelease Dependency Import PSDependAction Repository
SkipPublisherCheck]
VERBOSE: Invoking 'C:\Program Files\WindowsPowerShell\Modules\PSDepend\0.3.8\PSDependScripts\PSGalleryModule.ps1' with
parameters
Name Value
'---- -----
Dependency @{DependencyFile=Hashtable; DependencyName=FormatsToProcess;
DependencyType=PSGallery...
PSDependAction {Install, Import}
VERBOSE: Getting dependency [FormatsToProcess] from PowerShell repository [PSGallery]
VERBOSE: Installing [FormatsToProcess] with scope [AllUsers]
Any ideas on what is going on here?