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 中进行打印。
为此,我使用Process
或System.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 为什么会引发“系统找不到指定的文件”异常
.Net Core 2.0 Process.Start 抛出“指定的可执行文件不是此 OS 平台的有效应用程序”