PowerShell / PowerShell/PSScriptAnalyzer

AvoidGlobalVars should only trigger on assignment

Offen
#2,100 1 Kommentar 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

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

PowerShell classes requires variables to be initialized in a method before reference. This causes issues with global variables without scoping as the parser will throw a Variable is not assigned in the method error. To get around this the variable must be scoped but this causes PSScriptAnalyzer to throw a violation. The rule should only trigger when assigning a variable to the global scope not reading.

Steps to reproduce

class Test {
  [void] Abc() {
    if ($global:PSEdition -eq 'core') { write-host core }
  }
}

Expected behavior

No warnings

Actual behavior

RuleName                            Severity     ScriptName Line  Message
--------                            --------     ---------- ----  -------
PSAvoidGlobalVars                   Warning                 3     Found global variable 'global:PSEdition'.

If an unexpected error was thrown then please report the full error details using e.g. $error[0] | Select-Object *

Environment data

7.6-preview4

1.24.0

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die PS AvoidGlobalVars-Regel zu finden, und reproduziere das PowerShell-Klassenbeispiel aus dem Issue unter PowerShell 7.6-preview4. Der Fix ist abgeschlossen, wenn das Lesen von $global:PSEdition keine Warnung erzeugt, während das Zuweisen einer Variable zum globalen Gültigkeitsbereich weiterhin die Regel auslöst.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
powershell
Bereich
tooling
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.