无法在powershell中导入模块 - 无法加载文件

时间:2012-11-08 10:21:04

标签: powershell

我正在尝试在我安装在计算机上的PowerShell的特定模块中运行一个函数。 通过PowerShell窗口,它运行良好,但在使用PowerGUI时失败。

尝试执行时:

Import-Module modulename

我得到了例外: 加载格式dtat文件时出错: Microsoft.PowerShell,路径:modulename.format.pslxmml:文件被跳过,因为它已经存在于“Microsoft.PowerShell”中。

1 个答案:

答案 0 :(得分:0)

这是因为您在.psm1文件中使用Update-FormatData或Update-TypeData,这将阻止模块加载两次,因为您无法重新注册格式信息。要使其工作,请使用.psd1文件指定文件的类型和格式:

@{
    ModuleToProcess='MyModule.psm1'
    ModuleVersion = '1.0'
    FormatsToProcess = MyModule.Format.ps1xml'
    TypesToProcess = 'MyModule.Types.ps1xml'
}

请注意,此类错误在已发布的模块中非常普遍。因此,如果您的模块没有格式化,但导入另一个模块,那么您将必须修改该模块以正确导入它的格式化程序。