【发布时间】:2015-10-06 20:15:22
【问题描述】:
我已经创建了一个 PowerShell 模块和一个清单,但在加载模块时似乎没有处理清单。
我创建了一个具有相同行为的非常简单的示例:
TestModule.psm1
function Foo
{
return "Bar"
}
然后我创建一个这样的清单:
$version = New-Object System.Version(0, 0, 1, 0)
New-ModuleManifest -Author "Remko Weijnen" -Description "TestModule" -ModuleVersion $version -PowerShellVersion 3.0 `
-Path ".\TestModule.psd1" -RootModule ".\TestModule.psm1"
我创建了一个文件夹TestModule 并将TestModule.psm1 和TestModule.psd1 放入其中。
导入清单时,版本被正确识别:
Import-Module .\TestModule.psd1
Get-Module TestModule | select name, version
Name Version
---- -------
TestModule 0.0.1.0
但是,当我加载模块时,无法识别版本:
Import-Module .\TestModule.psm1
Get-Module TestModule | select name, version
Name Version
---- -------
TestModule 0.0
我错过了什么吗?还是不应该这样工作?
【问题讨论】:
-
如果您将文件夹放在
<user>\documents\windowspowershell\modules文件夹中,然后只执行import-module testmodule,版本是否显示正确? -
@TheMadTechnician 是的,有效
-
那么这就是你应该期望它的工作方式。当您显式导入 .psm1 文件时,您会绕过清单。 .psm1 文件中没有任何内容表明要加载清单。如果您遵循我的第一条评论中描述的“正常”模块行为,那么清单将按预期加载。这能回答你的问题吗?
-
如果您将评论更改为答案,我可以接受。这证实了我的想法(虽然希望是错的)。
标签: powershell module manifest powershell-3.0