2017-04-19 16 views
2

[System.Uri]::new('http://www.stackoverflow.com') mit Fehlermeldung versagtSystem.Uri enthält keine Methode mit dem Namen ‚neuer‘

[System.Uri] enthält keine Methode mit dem Namen ‚neuer‘

aber ich bin kann diese Methode auf einer anderen Box finden. und läuft gut.

Wie zu finden, wenn es einen Unterschied zwischen Systemobjekt ist unter Powershell geladen

+0

Können Sie ** $ PSVersionTable ** ausführen und die Details von zwei Umgebungen überprüfen? –

Antwort

4

Sie müssen Powershell 5 oder höher den .ctor einer .NET-Klasse zu verwenden. In älteren Versionen von Powershell müssen Sie dazu New-Object verwenden.

+0

@wOxxOm: Habe dies nur auf einem Server2012R2-Rechner (PS4) getestet und der neue Konstruktor funktioniert dort nicht. – bluuf

+0

Das ist interessant. Scheinbar aktualisiert WPF5 die gesamte PS-Umgebung, so dass diese Konstruktoren auch in 'powershell -version 3'-Sitzungen arbeiten. IIRC Ich habe ':: new()' erfolgreich in PS4 verwendet, bevor ich PS5 installiert habe, so dass es .NET Framework-bezogen sein könnte. Wie auch immer, es scheint kein Feature der PowerShell 5 zu sein, denn sonst hätte es nicht in 'Version 3' Sessions funktionieren sollen (oder ist es ein Bug?). – wOxxOm

+1

@wOxxOm 'powershell -version 3' auf einer Box mit WMF 5 ist eine Illusion :-) Schau dir' $ PSVersionTable' an –

Verwandte Themen