VS Code Fehler mit Klassen
Hi,
ich habe ein komisches Problem und komme damit auch nicht über die Suchen im Web weiter. Selbst der Copilot kapiert das nicht.
u.g. Code liefert innerhalb des VS Code beim Ausführen einen Fehler bzgl. des Typs Microsoft.ActiveDirectory.Management.ADEntity und bricht dann ab. Aber erst in Zeile 7, also nur innerhalb der Klasse.
Dieses Verhalten ist neu. Selbst wenn ich Scripte lade, welche bereits produktiv im Einsatz sind und auf genau demselben Computer mit VS Code programmiert wurden, kommt jetzt dieser Fehler.
Ich habe VS Code schon neu gestartet. Es ändert nichts.
Die Meldung ist
Hat jemand ne Idee, was das sein könnte.
E.
ich habe ein komisches Problem und komme damit auch nicht über die Suchen im Web weiter. Selbst der Copilot kapiert das nicht.
u.g. Code liefert innerhalb des VS Code beim Ausführen einen Fehler bzgl. des Typs Microsoft.ActiveDirectory.Management.ADEntity und bricht dann ab. Aber erst in Zeile 7, also nur innerhalb der Klasse.
Dieses Verhalten ist neu. Selbst wenn ich Scripte lade, welche bereits produktiv im Einsatz sind und auf genau demselben Computer mit VS Code programmiert wurden, kommt jetzt dieser Fehler.
Ich habe VS Code schon neu gestartet. Es ändert nichts.
Die Meldung ist
ParserError: ....Pfad....\Test.ps1:7:6
Line |
7 | [Microsoft.ActiveDirectory.Management.ADEntity] $SourceObject
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Unable to find type [Microsoft.ActiveDirectory.Management.ADEntity].
Hat jemand ne Idee, was das sein könnte.
E.
# außerhalb der Klasse
[Microsoft.ActiveDirectory.Management.ADEntity] $SourceObject = $null
[Microsoft.ActiveDirectory.Management.ADEntity] $DestinationObject = $null
class MyClass {
# innerhalb der Klasse
[Microsoft.ActiveDirectory.Management.ADEntity] $SourceObject
[Microsoft.ActiveDirectory.Management.ADEntity] $DestinationObject
MyClass($SourceObject, $DestinationObject) {
$this.SourceObject = $SourceObject
$this.DestinationObject = $DestinationObject
}
}
# Erstelle eine Instanz der Klasse
$instance = [MyClass]::new($SourceObject, $DestinationObject)
# Überprüfe die Initialisierung
$instance.SourceObject
$instance.DestinationObject
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 672049
Url: https://administrator.de/forum/vs-code-fehler-mit-klassen-672049.html
Ausgedruckt am: 19.03.2025 um 19:03 Uhr
6 Kommentare
Neuester Kommentar
Zitat von @emeriks:
Dieses Verhalten ist neu. Selbst wenn ich Scripte lade, welche bereits produktiv im Einsatz sind und auf genau demselben Computer mit VS Code programmiert wurden, kommt jetzt dieser Fehler.
Unterschiedliche PS Versionen?
Hilft ein passendes
using module <module-name>
Normal, guckst du
Klassen werden noch vor der Ausführung geparsed bevor überhaupt irgendein Type geladen wird der nicht im GAC liegt.
Klassen werden noch vor der Ausführung geparsed bevor überhaupt irgendein Type geladen wird der nicht im GAC liegt.
Moin.
Fischen im Trüben - wenn VS Code das Modul nicht findet, dann ist es eher zufällig, dass er den Code in der Klasse zuerst anmeckert. Ich kenne jetzt nicht alle Releases von VS Code, aber kann es sein, dass du eine 32-Bit Version laufen hast und WOW64 im Spiel ist?
... ist immer 8, oder einmal 8 und einmal 4?
Gruß
Steffen
Fischen im Trüben - wenn VS Code das Modul nicht findet, dann ist es eher zufällig, dass er den Code in der Klasse zuerst anmeckert. Ich kenne jetzt nicht alle Releases von VS Code, aber kann es sein, dass du eine 32-Bit Version laufen hast und WOW64 im Spiel ist?
[IntPtr]::Size
Gruß
Steffen
Zitat von @emeriks:
Da meckert VS Code
Zitat von @mbehrens:
Hilft ein passendes um dem Parser einen Hinweis zu geben?
Hilft ein passendes
using module <module-name>
Da meckert VS Code
Could not find the module 'ActiveDirectory'
Ist ja auch kein Modul sondern ein assembly ergo wenn using mit "Type" dann
using assembly ........
Mein Problem ist doch nicht, einen Typ zu importieren, diesen verfügbar zu machen, sondern, dass er in ein und demselben Script außerhalb einer Klasse im VS Code funktioniert und innerhalb eine Klasse im VS Code nicht funktioniert.
Du fügst das AD Assembly ja nirgendwo mit Add-Type oder using in der Klasse oder in der parent Session hinzu, Klassen arbeiten in PS halt etwas anders und nicht mit sämtlichen Features wie ihre .NET Pendants , diese werden geparsed noch bevor das genannte Assembly im selben Skript geladen ist.Also lade erst das Assembly und dann die Klasse über ein separates Skript in die PS Session.
Lies dir die Kommentare in den o.g. Links nochmal in Ruhe durch dann kommst du drauf 😉