Process.Start在.net核心中给出文件未指定错误

Posted

技术标签:

【中文标题】Process.Start在.net核心中给出文件未指定错误【英文标题】:Process.Start giving file not specified error in .net core 【发布时间】:2017-02-03 21:45:47 【问题描述】:

我想在 .net core 中进行打印。 为此,我使用ProcessSystem.Diagnostics。 我尝试了以下代码:

var printJob = new Process

    StartInfo = new ProcessStartInfo
    
        FileName = path,
        UseShellExecute = true,
        Verb = "print",
        CreateNoWindow = true,
        WindowStyle = ProcessWindowStyle.Hidden,
        WorkingDirectory = Path.GetDirectoryName(path)
    

;

但是 .net 核心中的 StartInfo 中缺少 Verb 属性。 所以我决定按如下方式打印:

Process.Start("LPR -S ip -P 'Star TSP800L Peeler (TSP828L)' -o 'D:\testpdf.pdf'");

但它给了我

系统找不到指定的文件

而文件存在于给定位置。

现在我正在尝试在我的 windows 10 机器上使用本地打印机进行测试,但我需要从 ubuntu 机器打印到网络打印机。

谁能告诉我,为什么我会收到找不到文件的错误。 我找到了以下链接,但它使用的是 StartInfo,在这种情况下对我没有帮助。

Process.Start in C# The system cannot find the file specified error

Error in Process.Start() -- The system cannot find the file specified

【问题讨论】:

lpr command not working from my C# program LPR command to print pcl-file from windows service not working 现在当我打印到本地打印机时,我得到打印服务器无法访问或指定的打印机不存在错误?我正在使用以下命令:lpr -S my_machine_ip -P Star TSP800L Peeler (TSP828L) -o l D:\\testpdf.pdf 【参考方案1】:

做这样的事情:

 public static void PrintToASpecificPirnter()
        
            using (PrintDialog printDialog = new PrintDialog())
            
                printDialog.AllowSomePages = true;
                printDialog.AllowSelection = true;
                if (printDialog.ShowDialog() == DialogResult.OK)
                
                    var StartInfo = new ProcessStartInfo
                    
                        CreateNoWindow = true,
                        UseShellExecute = true,
                        Verb = "printTo",
                        Arguments = "\"" + printDialog.PrinterSettings.PrinterName + "\"",
                        WindowStyle = ProcessWindowStyle.Hidden,
                        FileName = fileName
                    ;

                    Process.Start(StartInfo);
                

            
    

【讨论】:

以上是关于Process.Start在.net核心中给出文件未指定错误的主要内容,如果未能解决你的问题,请参考以下文章

Process.Start 为什么会引发“系统找不到指定的文件”异常

Process.Start可能无法选中指定文件的问题

.Net Core 2.0 Process.Start 抛出“指定的可执行文件不是此 OS 平台的有效应用程序”

如何从 .NET 程序打开 Web 浏览器? Process.Start() 不起作用?

Process.Start(url) 失败

使用 process.start 后如何退出主程序?