Process.Start权限问题

Sha*_*mer 7 .net c# latex processstartinfo

我正在尝试使用Process.Start从C#运行外部问题,但遇到了权限问题.当我正常打开命令提示符(而不是管理员)并运行我的命令时,它们工作正常,但是当我通过Process.Start打开命令提示符时,我在目录上收到写入错误.("我无法在文件test.log上写")
如果我通过Process.Start以管理员身份运行它可以正常工作,但我获得了权限弹出窗口.有没有人有任何想法可以帮我解决这个问题?谢谢!

这是我正在使用的代码:

Process proc = new Process();
proc.StartInfo.FileName = @"cmd.exe";
proc.StartInfo.Arguments = @"/k latex C:\Users\Shane\Documents\test.tex";
proc.Start();
proc.WaitForExit();
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 8

我想知道它是否正在尝试将诊断日志写入当前工作目录,您可能没有权限.(我不知道它是否会继承工作目录,或者是包含cmd.exe的目录.)我建议你指定新进程的工作目录ProcessStartInfo.WorkingDirectory.

(ProcessStartInfo顺便说一句,我个人认为创建一个新的填充程序更清晰- C#对象初始化程序使这个特别好)然后调用Process.Start(ProcessStartInfo)启动它.否则看起来已经有一个尚未真正进行的过程.只是MHO,可能与您正在调查的问题无关.)