PowerShell に精通していて、依存関係を操作したい場合は、psakeを試してください。それはどのようなものか:
psake script.ps1:-------
properties {
$dbServer = 'sqlexpress'
...
}
task default -depend StopServer1, StopServer2
task StopS1 -depend MakeS1Backup, StopSqlServer1 {
...
}
task MakeS1Backup {
... make backup
}
task StopSqlServer1 {
stop-service ...
}
# and anything similar to StopServer2
次に、次のように呼び出すことができます (さらにオプションがあります)。
Invoke-Psake script.ps1
#or
Invoke-Psake script.ps1 -task StopS1 #calls only StopS1 task and all other scripts it depends on
#or
Invoke-Psake script.ps1 -task MakeS1Backup #only backups S1, it doesn't depend on anything else
動作 - サーバー 1 (タスク StopS1) を停止し、その前に、StopS1 が依存するすべてのタスクを処理します。そのため、S1 を停止する前に、S1 のバックアップが作成され、Sql サーバー 1 が停止されます。
非常に冗長で醜い (非常に強力ではありますが) msbuild 構成よりもはるかに優れています。