我正在从Psake构建工具切换到Cake(https://cakebuild.net/)。我正在为(目前)有9种不同部署的大型解决方案(30多个项目)创建脚本。
在Psake中,调用PowerShell命令很简单,因为整个脚本已在Powershell中运行。
但是现在我有一个问题。我必须调用一些正在PS中运行的命令,但是我找不到执行它们的方法。
一些例子:
taskkill /IM iisexpress.exe
Invoke-Command -ComputerName <testing server> -ScriptBlock {import-module WebAdministration; Stop-Website <'name of website'>}
Invoke-Command -ComputerName <testing server> -ScriptBlock {import-module WebAdministration; Start-Website <'name of website'>}
我尝试使用StartAndReturnProcess(例如:StartAndReturnProcess(“taskkill/IM iisexpress.exe”);),但没有成功。我还找到了Cake.IIS插件,该插件可能会解决我在启动和停止IIS中遇到的问题,但是我还想调用其他PS命令。
是否可以从Task中简单地调用PowerShell命令?
像这样的东西:
Task("DoSomeMagic")
.Does(() =>
{
ExecutePowerShellCommad("taskkill /IM iisexpress.exe");
ExecutePowerShellCommad("Invoke-Command -ComputerName <testing server> -ScriptBlock {import-module WebAdministration; Stop-Website <'name of website'>}");
//ToDo: other magic
});
感谢您提供任何答案和最诚挚的问候,
马丁
最佳答案
您看过Cake.PowerShell插件吗?
用法示例可以在here中找到,但提供一个示例(摘自自述文件):
#addin "Cake.Powershell"
Task("Powershell-Script")
.Description("Run an example powershell command with parameters")
.Does(() =>
{
StartPowershellScript("Write-Host", args =>
{
args.AppendQuoted("Testing...");
});
});
自述文件中有更复杂的示例,具体取决于您要实现的目标。
关于c# - 是否可以从Cake tas中调用powershell命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47515919/