Utilizziamo estesamente NAnt per il nostro sistema di compilazione. Recentemente, ho scritto un paio PowerShell Cmdlets per eseguire alcune cose relative al database. Inizialmente, l'intento di questi cmdlet era non da eseguire necessariamente all'interno del nostro processo di compilazione. Tuttavia, questo è diventato di recente un'esigenza e vorremmo eseguire alcuni di questi Cmdlet dal nostro processo di build basato su NAnt.Qual è un buon modo per utilizzare un cmdlet PowerShell in un sistema di build NAnt?
Questi Cmdlet sono scritti in C# e abbiamo uno SnapIn per loro (se questo è importante).
alcune idee:
- utilizzare il compito di chiamare exec PowerShell? (non sono sicuro di come funzionerebbe comunque)
- Scrivere un'attività NAnt personalizzata che faccia riferimento e utilizzi il cmdlet?
Quale potrebbe essere un buon modo per farlo?
La prego di chiarire l'utilizzo del commerciale? Senza una spiegazione, la tua risposta sembra più o meno la stessa di [risposta di VJ M] (http://stackoverflow.com/a/4311491/622391)? –
La e commerciale è l'operatore di chiamata in PowerShell. Quanto segue è tratto dall'output del comando 'get-help about_operators' sotto operatori speciali: '& Call operator Esegue un comando, script o blocco di script.L'operatore di chiamata, noto anche come "operatore di chiamata", consente di eseguire comandi memorizzati nelle variabili e rappresentati da stringhe. Poiché l'operatore di chiamata non emette il comando, , non può interpretare i parametri di comando. ' –
Per chiarire ulteriormente, Secondo la mia esperienza, l'esclusione di tale argomento può causare l'elaborazione di argomenti da parte di powershell.exe anziché dello script o solo in generale. –