Powershell 似乎没有一种简单的方法来使用任意命令触发它,然后以与非 PowerShell 的调用者正确互操作的方式冒泡解析和执行错误 - 例如cmd.exe
,TeamCity等。
我的问题很简单。使用 OOTB MSBuild v4 和 PowerShell v3 对我来说最好的方法是什么(接受建议 - 不会排除适合生产的 MSBuild 任务,但它需要比建议“这很容易 - 使用 PowerShell 任务工厂示例和调整它和/或成为它的维护者/父”)来运行一个命令(一个小的脚本段,或者(最常见的)一个.ps1
脚本的调用。
我认为它应该是正常的,例如:
<Exec
IgnoreStandardErrorWarningFormat="true"
Command="PowerShell "$(ThingToDo)"" />
可悲的是,这不起作用:-
- 如果
ThingToDo
解析失败,则静默失败 - 如果
ThingToDo
是不存在的脚本调用,则失败 - 如果你想传播一个
ERRORLEVEL
基于.cmd
结果的结果,它会变得毛茸茸的 - 如果你想在 中嵌入
"
引号ThingToDo
,它将不起作用
那么,从 MSBuild 运行 PowerShell 的防弹方法应该是什么?有什么我可以PsGet让一切正常的吗?