如何使用模块清单导出PowerShell模块别名?

| 我有一个具有多种功能的模块。 由于我已经以非PowerShell方式命名了它们,因此我想重命名它们。但是由于该模块已经在使用中,所以我想保留旧的函数名称。 实现此目的的最佳方法似乎是使用别名。我已经有一个模块清单,其中指出:
AliasesToExport = \'*\'
所以我在模块中用created1ѭ创建了一个别名。 函数照常导入,但别名不存在。 我知道我可以在模块中使用Export-ModuleMember。但是我有一个清单,应该已经注意了。 所以这终于是我的问题: 为什么别名不通过清单导出? 函数本身是否有一个特殊的地方,可以或必须定义一个别名?还是我必须在特殊的地方使用New-Alias cmdlet? 我在想类似参数别名的东西:
[parameter(Mandatory=$true, Position=0)][Alias(\"name\",\"path\")][String]$filename
但是对于功能代替。     
已邀请:
似乎没有我正在寻找的解决方案。 所以我不得不使用Export-ModuleMember
Export-ModuleMember -Function * -Alias *
起初,由于清单(FunctionsToExport = \“ * \”)正确地导出了函数,因此我仅使用参数\“ Alias \”,但是仅导出了别名。 因此,请确保使用Export-ModuleMember cmdlet导出要导出的所有内容。     
将-Scope Global添加到New-Alias命令似乎可以解决问题。
New-Alias -Name test -Value oldFunctionName -Scope Global
在尝试此操作时,我发现一些令我感到惊讶的东西。我在模块中有一个函数,目的是创建别名。我很惊讶地看到,当我使用此功能时(在导入模块之后),它创建的别名与模块相关联。如果删除模块,则使用此函数创建的所有别名也将消失。     
如果您看:
get-help New-ModuleManifest -full
对于
-AliasesToExport
,您可以看到以下内容:
-AliasesToExport <string[]>
Specifies the aliases that the module exports. Wildcards are permitted.

You can use this parameter to restrict the aliases that are exported by the module. It can remove aliases from the list of exported aliases, but it cannot add aliases to the list.

If you omit this parameter, New-ModuleManifest creates an AliasesToExport key with a value of * (all), meaning that all aliases that are exported by the module are exported by the manifest.
我可能是错的,但是据我理解,ѭ6可以用于限制导出的别名,但是句子\“ New-ModuleManifest创建的AliasesToExport键值为*(全部),这意味着模块导出的所有别名由清单导出”对我来说意味着您必须在模块中导出别名。     

要回复问题请先登录注册