尝试在命令行中运行Powershell代码时出现问题(加载程序集)

时间:2018-02-09 10:05:56

标签: powershell

我创建了一些使用命令行Powershell中的New-Object命令的代码,但每当我尝试从System.Windows加载任何内容时,都会弹出此错误:

PS C:\Users\USER> New-Object System.Windows.FontWeight
New-Object : Cannot find type [System.Windows.FontWeight]: verify that the assembly containing this type is loaded.
At line:1 char:1
+ New-Object System.Windows.FontWeight
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidType: (:) [New-Object], PSArgumentException
+ FullyQualifiedErrorId : TypeNotFound,Microsoft.PowerShell.Commands.NewObjectCommand

此代码在Powershell ISE中运行良好:

PS C:\Users\USER> New-Object System.Windows.FontWeight
Normal

如果有人能告诉我问题是什么以及如何解决,那将非常感激!

3 个答案:

答案 0 :(得分:0)

PowerShell ISE在启动时加载包含程序集以构建自己的GUI。

powershell.exe中你必须自己加载它:

Add-Type -AssemblyName PresentationCore |Out-Null

答案 1 :(得分:0)

FontWeight Structure名称空间和System.Windows程序集中存在PresentationCore。从错误中可以明显看出,您需要将程序集PresentationCore添加到PowerShell命令行。使用它,你会很高兴。

Add-Type -Assembly PresentationCore

答案 2 :(得分:0)

问题是,PowerShell会话中未加载包含类型PresentationCore的程序集System.Windows.FontWeight。好像PowerShell ISE和PowerShell控制台不会预加载相同的程序集。您可以按如下方式加载相应的程序集:

Add-Type -AssemblyName PresentationCore