我正在尝试在我安装在计算机上的PowerShell的特定模块中运行一个函数。 通过PowerShell窗口,它运行良好,但在使用PowerGUI时失败。
尝试执行时:
Import-Module modulename
我得到了例外: 加载格式dtat文件时出错: Microsoft.PowerShell,路径:modulename.format.pslxmml:文件被跳过,因为它已经存在于“Microsoft.PowerShell”中。
答案 0 :(得分:0)
这是因为您在.psm1文件中使用Update-FormatData或Update-TypeData,这将阻止模块加载两次,因为您无法重新注册格式信息。要使其工作,请使用.psd1文件指定文件的类型和格式:
@{
ModuleToProcess='MyModule.psm1'
ModuleVersion = '1.0'
FormatsToProcess = MyModule.Format.ps1xml'
TypesToProcess = 'MyModule.Types.ps1xml'
}
请注意,此类错误在已发布的模块中非常普遍。因此,如果您的模块没有格式化,但导入另一个模块,那么您将必须修改该模块以正确导入它的格式化程序。