0

我有一个带有一些嵌入式工作流和本机 ps1 cmdlet 的自定义模块。

当我导入此模块时,只有一部分 cmdlet 显示为模块下的提取活动。

模块正在成功完成导入,并显示为可用。

是否有任何地方可以查找特定输出和任何可能的特定于成员的导入错误?

无法加载的 cmdlet 取决于作为程序集的一部分添加的一些新类型。正在加载的 cmdlet还取决于该程序集的类型。

更令人困惑的是,当我在 ISE 中本地导入此模块时,一切正常,并且所有 cmdlet 都可用/可执行。

进一步:我已经在 Native PowerShell cmdlet 中看到了这一点,但它看起来好像(单个)PowerShell Workflow activity inside a .ps1 is not supported

此外,我在本地看到,取决于是否使用 .psd1 或 .psm1 加载我的模块,我得到不同的行为和结果 WRT 依赖程序集加载。

特别是,当尝试在本地解决不一致问题时,我得到了一些“找不到类型”或“找到多个 1 arg 的 ctor 重载”(尽管所讨论的类型没有 1 的 ctor arg) 通过[OutputType([typename])]等引用的类型的错误,当发现其他依赖于 SAME 程序集的类型的 cmdlet 时就好了..

[编辑]
我的测试 .psm1 的本地详细输出

详细:导入功能“同步测试”。
详细:将命令导入为工作流“Sync-VsoGitRmRunbook”。

在 AA 中,sync-test(只是一个编写字符串输出的普通运行手册)显示良好,而 Sync-VsoGitRmRunbook 则没有。

如果我将同步测试转换为工作流,它也会停止导入,这让我相信导出捆绑为 .ps1 文件的工作流活动的模块存在限制(而不是打包在模块中的 C# 类)

[编辑]
我创建了一个重现问题的模块。 https://github.com/JoeBrockhaus/AzureAutomationVsoGitSync

4

1 回答 1

0

只有 PowerShell cmdlet / DSC 资源可以通过 PowerShell 模块导入 Azure 自动化。如果您将工作流活动转换为 cmdlet,导入应该会成功。

无论如何,您可能希望这些工作流活动成为 cmdlet,因此它们也可以在非 PowerShell 工作流运行手册中使用。

于 2016-03-05T17:34:11.313 回答