我有一个PowerShell模块,我已经创建并安装在WindowsPowerShell \ Modules路径中。我可以自动发现模块,如果它安装在模块文件夹的根目录下,例如WindowsPowerShell \ Modules \ NewModule,但是如果我在模块文件夹中创建一个子文件夹,模块不会被自动发现,例如WindowsPowerShell \模块\ NewModule \ 1.0。
为什么通过将模块和清单添加到Module文件夹中的子文件夹来停止自动发现模块?我有很多模块使用这种自动发现的结构。谢谢!
答案 0 :(得分:0)
关于为什么其他人正在工作,我猜测PS如何安装模块取决于它来自何处(即从PSGallery安装的模块通常在版本子文件夹中)。根据安装模块的MS文档,父模块文件夹应该直接在模块路径中,以便将其正确识别为模块:
https://msdn.microsoft.com/en-us/library/dd878350(v=vs.85).aspx
话虽这么说,如果您正在创建模块并将它们全部存储在PSModulePath的子文件夹中,您应该可以更新PSModulePath环境变量以包含该子文件夹。完成后,重新加载PS会话并重试导入。