我创建了一些使用命令行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
如果有人能告诉我问题是什么以及如何解决,那将非常感激!
答案 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