我创建了一个* .psm1和* .psd1文件。驻留在与文件同名的目录(文件夹)中。这个目录在c:\Program Files\WindowsPowerShell\Modules\...
Import-module
报告没有错误,并Get-Module
在之后显示模块。Test-ModuleManifest返回正确的清单。但是,Powershell无法识别cmdlet本身。还要注意的是Test-ModuleManifest
没有显示任何导出的命令(这是正常的吗?)。
文件安全性很好,当我将* .psm1放在Autoload文件夹中时,它按预期工作。
通常的错误和错误已被检查,以及广泛的谷歌搜索。PS Gallery中的几个模块已成功导入。这家商店里没有人能够找出遗漏的东西。
这种故障发生在几个不同的平台上,所有Windows(7或10)同时具有AMD和Intel内核。
有人遇到过这个问题吗?你能解决这个问题吗?
这是我的ModuleManifest,New-ModuleManifest
由ISE 生成和修改。
#模块'Convert-F2C'的模块清单
#
#生成者:我
#
#生成于:2017年4月25日
#
@{
#与此清单关联的脚本模块或二进制模块文件。
#RootModule =''
#该模块的版本号。
ModuleVersion ='1.0'
#支持的PSEditions
#CompatiblePSEditions = @()
#ID用于唯一标识此模块
GUID ='252b9222-9bc8-4634-b658-dd234b483152'
#本单元的作者
作者='我'
#此模块的公司或供应商
CompanyName ='我的公司'
#此模块的版权声明
版权='(c)2017我。版权所有。'
#此模块提供的功能说明
Description ='将华氏温度转换为摄氏温度'
#此模块所需的Windows PowerShell引擎的最低版本
#PowerShellVersion =''
#此模块所需的Windows PowerShell主机的名称
#PowerShellHostName =''
#此模块所需的Windows PowerShell主机的最低版本
#PowerShellHostVersion =''
#此模块所需的Microsoft .NET Framework的最低版本。这个
先决条件仅适用于PowerShell Desktop Edition。
#DotNetFrameworkVersion =''
#此要求的公共语言运行时(CLR)的最低版本
模块。此先决条件仅适用于PowerShell Desktop Edition。
#CLRVersion =''
#此模块需要处理器架构(无,X86,Amd64)
#ErocessorArchitecture =''
#必须先导入全局环境的模块
导入此模块
#RequiredModules = @()
#导入此模块之前必须加载的程序集
#RequiredAssemblies = @()
#在调用者环境之前运行的脚本文件(.ps1)
导入此模块。
#ScriptsToProcess = @()
#键入导入此模块时要加载的文件(.ps1xml)
#TypeToProcess = @()
#格式化导入此模块时要加载的文件(.ps1xml)
#FormatsToProcess = @()
#要导入的模块作为指定模块的嵌套模块
RootModule / ModuleToProcess
#NestedModules = @()
#从此模块导出的功能,为获得最佳性能,请勿使用
通配符并且不删除该条目,如果没有则使用空数组
要导出的功能。
FunctionsToExport ='Convert-F2C'
#Cmdlet从此模块导出,为获得最佳性能,请勿使用
通配符并且不删除该条目,如果没有则使用空数组
要导出的cmdlet。
CmdletsToExport = @()
#要从此模块导出的变量
VariablesToExport = @()
#要从此模块导出的别名,为获得最佳性能,请勿使用
通配符并且不删除该条目,如果没有则使用空数组
要导出的别名。
AliasesToExport ='*'
#DSS要从此模块导出的资源
#DscResourcesToExport = @()
#本模块打包的所有模块的列表
#ModuleList = @(Convert-F2c.psm1)
#使用此模块打包的所有文件的列表
#FileList = @()
#要传递给指定模块的私有数据
RootModule / ModuleToProcess。这也可能包含PSData哈希表
PowerShell使用的其他模块元数据。
PrivateData = @ {
PSData = @ {
#应用于此模块的标签。这些有助于模块发现
在线画廊。
#Tags = @()
#此模块许可证的URL。
#LicenseUri =''
#此项目主网站的URL。
#ProjectUri =''
#表示此模块的图标的URL。
#IconUri =''
#该模块的ReleaseNotes
ReleaseNotes ='初始创建,首先表现出模块
作者'
} #PSData哈希表的结束
}#PrivateData哈希表的结束
#HelpInfo此模块的URI
#HelpInfoURI =''
#从该模块导出的命令的缺省前缀。覆盖
使用Import-Module -Prefix的默认前缀。
#DefaultCommandPrefix =''
}
发布于 2019-05-21 08:52:17
我通过设置RootModule参数让它工作。执行此操作不在任何文献或参考文献中,但模块现在正常运行。
# Script module or binary module file associated with this manifest.
RootModule = 'ModuleName (no extension)'
发布于 2019-05-21 09:42:59
如果您有这些文件模块:
你需要更新这一行:
#NestedModules = @()
对此:
NestedModules = @('MyModule','ExtraModule')
并确保您FunctionsToExport
列出所有功能,或者您可以使用FunctionsToExport = '*'
它们全部导出。
https://stackoverflow.com/questions/-100009040
复制相似问题