使用sub_ids[xxx]
安装Install-Module
后,我有一周的使用时间,因为我在一天早上来到它之前没有正确加载powershell-yaml
。
现在,如果我在手动运行YamlDotNet
之前尝试使用ConvertFrom-Yaml
,我会收到以下错误:
Import-Module powershell-yaml
以前(在大多数系统上)这很好用。如果我在调用函数之前运行手册PS C:\Users\user> "---" | ConvertFrom-Yaml
New-Object : Cannot find type [YamlDotNet.RepresentationModel.YamlStream]: verify that the assembly containing this type is loaded.
At C:\Program Files\WindowsPowerShell\Modules\powershell-yaml\0.3.1\powershell-yaml.psm1:24 char:23
+ ... $yamlStream = New-Object "YamlDotNet.RepresentationModel.YamlStream"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidType: (:) [New-Object], PSArgumentException
+ FullyQualifiedErrorId : TypeNotFound,Microsoft.PowerShell.Commands.NewObjectCommand
You cannot call a method on a null-valued expression.
At C:\Program Files\WindowsPowerShell\Modules\powershell-yaml\0.3.1\powershell-yaml.psm1:25 char:9
+ $yamlStream.Load([System.IO.TextReader] $stringReader)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
,它可以正常工作:
Import-Module
我和同事的机器几乎同时开始这种行为。今天早上我的系统再次开始正常工作,但他仍然表现出这种行为。我们无法在其他机器上复制它。
我已将其缩小为PS C:\Users\user> Import-Module powershell-yaml
PS C:\Users\user> "---" | ConvertFrom-Yaml
PS C:\Users\user>
清单Powershell-Yaml
中引用的脚本在自动加载期间未被调用,但在手动ScriptsToProcess
期间运行正常。在工作机器上,Import-Module
中的脚本在两种情况下都会运行。作为一种解决方法,我们可以通过在我们的配置文件中放置ScriptsToProcess
来强制加载模块,理想情况下我们希望找到根本原因。
Import-Module
无效,因为首先调用Import-Module -Verbose
始终有效。