我一直在为 App-V 编写一些使用 PowerShell Cmdlet 的实用程序。有趣的是,微软似乎只记录了 cmdlet,而不是 Powershell 模块后面使用的 .net 程序集。
现在我熟悉了 P/Invoke 和 COM 互操作,并且学会了如何使用 System.Management.Automation 创建一个 powershell 会话并调用 cmdlet。
但是我觉得有些不对劲。我基本上是在编写自己的包装类来隐藏我的其余代码中的 powershell 调用。看来我应该a)绕过powershell并直接使用它后面的托管库,或者b)应该有更好的机制来为powershell cmdlet生成互操作库。
这些天来,微软似乎在大量使用 PS CmdLets,它本质上正在成为一种新的互操作 API。
我错过了什么吗?在这种情况下使用什么好的策略?