在NAnt构建系统中使用PowerShell Cmdlet的好方法是什么?

Sco*_*aad 9 nant build-automation powershell

我们广泛使用NAnt构建系统.最近,我写了几个PowerShell Cmdlet来执行一些与数据库相关的事情.首先,这些Cmdlet的意图并不一定在我们的构建过程中运行.但是,这最近成为一种需求,我们希望从基于NAnt的构建过程中运行一些这些Cmdlet.

这些Cmdlet是用C#编写的,我们有一个SnapIn(如果这很重要的话).

一些想法:

  • 使用exec任务调用PowerShell?(不知道这会怎么样)
  • 编写引用和使用Cmdlet的自定义NAnt任务?

什么可能是一个很好的方法来做到这一点?

小智 12

您可以在nant脚本中使用以下exec任务来调用ps cmdlet.

<exec program="powershell" workingdir="${BuildManagementDir}" verbose="true">
    <arg value="-noprofile"/>
    <arg value="-nologo"/>
    <arg value="-noninteractive"/>
    <arg value="-command"/>
    <arg value=".\xyz.ps1"/>
</exec>
Run Code Online (Sandbox Code Playgroud)


tom*_*asr 5

您当然可以使用exec任务,将程序属性设置为powershell.exe并传入命令行,如"-Command {}".

或者,您当然可以创建一个自定义的NAnt任务,该任务在内部使用powershell托管API来执行您的cmdlet或脚本.有这样一个简单的例子(使用PS V1 API)来这里.