Qui .NET est la version de mon script PowerShell à l'aide?
Que j'aimerais utiliser .NET dans certains scripts PowerShell, je suis en train d'écrire-comment puis-je savoir/déclarer la version de .NET, je fais face à lors de ces scripts s'exécutent?
Et est-il possible de choisir à l'encontre de la version de .NET mon script sera exécuté?
- Jusqu'à la version 3.5 du framework, ils sont tous compatibles/inclusive les uns avec les autres. Utilisez donc le sous-ensemble de fonctionnalités qui est cohérent avec le cadre de la version que vous ciblez.
Vous devez vous connecter pour publier un commentaire.
Sur PowerShell 2.0, il suffit de prendre un coup d'oeil à la
$PSVersionTable
variable:Sur PowerShell 1.0, utilisation
[System.Environment]::Version
:Woah, ce n'est pas vrai! Vous peut spécifier la version de .NET que PowerShell. La clé est la .NET standard fichier de configuration d'application, qui prend la forme [nom].exe.config. Vous pouvez déposer que dans le même répertoire que la plupart .NET applications, y compris le PowerShell et PowerShell ISE exécutables -- et le CLR charge automatiquement tout reconnaissable options spécifiées dans le fichier de configuration. L'une de ces options est la version CLR vous souhaitez que l'application à utiliser.
Cela est décrit en détail dans la question: Comment puis-je lancer PowerShell avec le .NET 4 runtime?. En particulier, voir Empereur XLIIaprès.
Pour obtenir le .NET version:
...qui est, par défaut, la version du CLR de l'assemblée (
System.Management.Automation.dll
) rédigé en vertu de l'.Et non, vous ne pouvez pas choisir .Version NET, vous pouvez exécuter le script sous.
L' .NET version peut être déduit à partir de la version de mscorlib. Ainsi, vous pouvez effectuer les opérations suivantes dans PowerShell à la sortie de la version actuelle de .NET:
([AppDomain]::CurrentDomain.GetAssemblies() | ? { $_.GetName().Name -eq "mscorlib" }).GetName().Version
Consultez l'article Hey, Le Scripteur! Comment puis-je Vérifier la Version de Windows PowerShell que j'utilise?. Il montre où dans le registre, vous pouvez vérifier pour déterminer cette.
PS > [Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()
C:\Windows\Microsoft.NET\Framework\v2.0.50727\
J'ai trouvé que vous pouvez regarder pour que l'information contenue dans le répertoire C:\Windows\Microsoft.NET\Framework:
Les répertoires à l'intérieur que l'on va vous dire les versions du framework est installé.