我想在批处理文件中启动.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?
答案 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
。