.net core WebAPI 运行 cli 命令

Posted

技术标签:

【中文标题】.net core WebAPI 运行 cli 命令【英文标题】:.net core WebAPI running cli commands 【发布时间】:2021-10-25 00:05:25 【问题描述】:

我正在 .net core 5 中创建一个 WebApi,我希望它调用一些 CLI commands 以在将动态创建的解决方案中创建项目。如果可能的话,我希望在 .net 中收到 CLI 命令的返回。可以这样做吗?

我将拥有一个 javascripthtml 界面,它将调用此 API(以动态创建项目)并显示创建结果(CLI 返回)

【问题讨论】:

查了很多资料,没有找到相关资料。恐怕很难在.net core WebAPI中实现 【参考方案1】:

我认为这个例子会很有用

    [HttpGet("name")]
    public async Task<IActionResult> Create(string name)
    
        string outputText = string.Empty;
        var standardError = string.Empty;

        try
        
            using (Process process = new Process())
            
                process.StartInfo = new ProcessStartInfo
                
                    FileName = "dotnet",
                    Arguments = @$"new sln -o name",
                    WorkingDirectory = @"C:\projects",//the file must exist
                    RedirectStandardOutput = true,
                    RedirectStandardError = true,
                    UseShellExecute = false,
                    CreateNoWindow = false,
                ;

                process.Start();
                outputText = process.StandardOutput.ReadToEnd();
                outputText = outputText.Replace(Environment.NewLine, string.Empty);
                standardError = process.StandardError.ReadToEnd();
                process.WaitForExit();
            
        
        catch (Exception ex)
        

        
        return Ok(outputText + standardError);
    

【讨论】:

以上是关于.net core WebAPI 运行 cli 命令的主要内容,如果未能解决你的问题,请参考以下文章

使用Http-Repl工具测试ASP.NET Core 2.2中的Web Api项目

.Net Core 下

.NET Core Web APi类库如何内嵌运行?

.NET Core 2 Web API:CORS 问题

如何在 Ubuntu 上托管/发布我的 .Net Core WebAPI?

ASP.NET Core 2.2 WebAPI 405 方法不允许