PowerShell / PowerShell/PSScriptAnalyzer
PSUseOutputTypeCorrectly complains "... type is not declared in the OutputType attribute" even though it is
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C#
- Sterne
- 2.2k
- Forks
- 414
- Ø Merge
- 13 Std. 1 Min.
- Gemergte PRs (30 T.)
- 2
Beschreibung
Steps to reproduce
PSScriptAnalyzer is complaining about a missing OutputType attribute, even though I did set it correctly.
See PSScriptAnalyzer CI comment under my commits: https://github.com/jantari/LSUClient/commit/a6c2fcc1622aa221d0be73debb4a97baea7b36b5
Easiest way to reproduce is test with my exact file:
mkdir test-pssa
curl.exe "https://raw.githubusercontent.com/jantari/LSUClient/develop/public/Install-LSUpdate.ps1" -o .\test-pssa\Install-LSUpdate.ps1
Import-Module PSScriptAnalyzer -RequiredVersion 1.20.0 # Latest
Invoke-ScriptAnalyzer -Path .\test-pssa -ExcludeRule PSAvoidTrailingWhitespace -Recurse -Verbose
Expected behavior
PSScriptAnalyzer should have no complaints.
Actual behavior
RuleName Severity ScriptName Line Message
-------- -------- ---------- ---- -------
PSUseOutputTypeCorrectly Information Install-LS 93 The cmdlet 'Install-LSUpdate' returns an object of type
Update.ps1 'PackageInstallResult' but this type is not declared in the
OutputType attribute.
PSUseOutputTypeCorrectly Information Install-LS 125 The cmdlet 'Install-LSUpdate' returns an object of type
Update.ps1 'PackageInstallResult' but this type is not declared in the
OutputType attribute.
Environment data
Issue is reproducible under both:
> $PSVersionTable
Name Value
---- -----
PSVersion 7.2.1
PSEdition Core
GitCommitId 7.2.1
OS Microsoft Windows 10.0.22538
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
> (Get-Module -ListAvailable PSScriptAnalyzer).Version | ForEach-Object { $_.ToString() }
1.20.0
1.19.1
and:
> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.22538.1000
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.22538.1000
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
> (Get-Module -ListAvailable PSScriptAnalyzer).Version | ForEach-Object { $_.ToString() }
1.19.0
1.20.0
1.19.1
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginnen Sie damit, den Bericht mit Install-LSUpdate.ps1 aus der verknüpften Reproduktion und Invoke-ScriptAnalyzer unter Verwendung von PSScriptAnalyzer 1.20.0 nachzustellen. Untersuchen Sie die Regel PSUseOutputTypeCorrectly und vergleichen Sie deren abgeleiteten PackageInstallResult-Ausgabetyp mit dem deklarierten OutputType. Als abgeschlossen gilt die Untersuchung, wenn die Fehlalarme bei den Diagnosen in den Zeilen 93 und 125 nicht mehr erscheinen, während weiterhin gültige Warnungen erkannt werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- powershell
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 35/100