0

我们有大量的 Powershell 函数,它们是用 Powershell 编写的,并使用具有以下行的 Powershell 清单文件发布:

# Script module or binary module file associated with this manifest.
RootModule = 'Module1.psm1'`

WhereModule1.psml循环并导入我们所有的函数:

#Dot source the files
Foreach($import in @($Public + $Private))
{
    Try
    {
        . $import.fullname
    }
    Catch
    {
        Write-Error -Message "Failed to import function $($import.fullname): $_"
    }
}

Export-ModuleMember -Function $Public.Basename

我们现在有一个 C# cmdlet 公开 1 个函数,我们需要将其作为其中的一部分发布。c# cmdlet 在 bin 目录中包含“Cmdlet1.dll”。

使用模块清单发布这个新 dll 的正确方法是什么,以便在我们导入 Module1 时,我们也从 Cmdlet1 中获取函数?

感谢您的任何帮助!

4

1 回答 1

1

您需要使用清单文件的NestedModulesCmdletsToExport属性。

# ...
NestedModules = @('Cmdlet1.dll');
CmdletsToExport = @('CmdletsFromTheDllFile');
# ...

我发现PowerShell文档页面非常有助于为同时包含 CmdLets和C#CmdLets的项目创建良好的结构。

于 2021-08-18T13:57:23.210 回答