在我调用CloseMainWindow之前如何在没有关闭它的情况下在新的命令提示符中启用dotnet.exe?

时间:2018-05-20 21:54:17

标签: powershell .net-core iis-express

我想在批处理文件中启动.NET Core Web应用程序,然后向其发送客户端请求,然后关闭Web应用程序。

template <> constexpr auto wrong<float> = true;

但是,在启动Invoke-RestMethod或process.CloseMainMaindow()之前,托管.net核心进程的CMD窗口就会立即消失。我曾尝试过与iisexpress.exe和asp.net Web API类似的做法,但它运行良好。

如何在我调用CloseMainWindow之前在不关闭它的情况下在新的命令提示符中启用dotnet.exe?

1 个答案:

答案 0 :(得分:1)

我可以避免使用手动.NET操作,并依赖内置方法(这是cmdlet的全部内容):

$path = "$PSScriptRoot\MyWebApp\bin\Debug\netcoreapp2.0"
$procArgs = @{
    FilePath         = "$path\dotnet.exe"
    ArgumentList     = "$path\MyWebApp.dll"
    WorkingDirectory = $path
    PassThru         = $true
}
$process = Start-Process @procArgs

$restArgs = @{
    Uri         = 'http://localhost:5000/api/codegen'
    Method      = 'Post'
    InFile      = "$PSScriptRoot\MyWebApp\Payload.json"
    ContentType = 'application/json'
}
Invoke-RestMethod @restArgs

$process.CloseMainWindow() # Should be `$process | Stop-Process`

默认情况下,Start-Process会在新控制台中打开窗口,除非您使用-NoNewWindow