二进制Powershell Cmdlet不从模块导出

时间:2016-10-28 22:54:33

标签: powershell .net-assembly cmdlet

我创建了一个Powershell模块,其中包含一个由C#实现的Cmdlet和一个由psm1文件提供的高级函数。加载模块时,仅导出高级功能中实现的功能。

我注册了程序集作为我的模块的一部分加载并导出了函数:

RequiredAssemblies = @("lib\provider.dll","lib\myCmdlet.dll")
FunctionsToExport = @('New-assemblyFunction','New-advancedFunction')

此外,我尝试将上面的functionstoexport与cmdlettoexport混合为程序集提供的Cmdlet。所有类型的组合都没有取得任何成功:

CmdletsToExport = @('New-assemblyFunction')

如果我以详细模式启动导入模块,我可以看到正在加载程序集,但只导出高级函数中实现的函数。 New-assemblyFunction不会出现在详细报告中的任何位置。

我可以手动加载DLL(import-module)并且cmdlet可用。 任何线索在这里有什么问题或如何进一步分析?我解封了所有文件。

1 个答案:

答案 0 :(得分:1)

那就是:

RequiredAssemblies键的值不被视为PowerShell模块。您需要使用RootModuleModuleToProcess)或NestedModules密钥。 - PetSerAl