如何在.NET 6 api项目中添加自定义命令行

问题描述 投票:0回答:1

大家晚上好!

我有一个 .NET 6 api 项目,其中我们从 csv 导入数据,该数据在后台与 Quartz 作业配合使用。有一个服务类(

IImportService
),其中从本地文件夹读取每个 csv,然后在 DataTable 中转换,对于该 DataTable 的每一行,都会创建该实体的一个新对象(例如,product.csv,对于每一行创建了一个
Product
类型的对象,然后添加到 db 中。

我需要实现的是一种使用命令行启动导入方法的方法,但我不明白如何做到这一点。我已经阅读了有关将控制台应用程序项目添加到同一解决方案并添加主项目的命名空间的信息,以便我拥有创建启动

Import
方法的 CLI 命令所需的一切。或者我读到过这样一个事实:.NET 应用程序已经是 CLI 应用程序,因此我可以运行该应用程序并执行一些我不太理解的操作。

问题是,考虑到请求的简单性,这些解决方案对我来说似乎太复杂了,所以我想知道我是否真的错过了一个更简单的解决方案。

希望你能帮助我更多地了解它!

c# .net api command-line command-line-interface
1个回答
0
投票

我在 API 项目中使用 System.Diagnostics 来执行此操作:

    public static void RunCommand(string command)
    {
        try
        {
            Process process = new();
            ProcessStartInfo startInfo = new();
            startInfo.WindowStyle = ProcessWindowStyle.Hidden;
            startInfo.FileName = "cmd.exe";
            startInfo.Arguments = "/C " + command;
            process.StartInfo = startInfo;
            process.Start();
        }
        catch (Exception e)
        {
            Debug.WriteLine(e.Message);
        }
    }

我这样称呼它:

RunCommand("sc create LyklakippanService binpath=\"C:\\Program Files\\Prod\\Lyklakippan\\LyklakippanService.exe\" start=auto");
© www.soinside.com 2019 - 2024. All rights reserved.