c#以管理员身份运行.bat文件应用程序无法启动

时间:2018-10-08 12:48:06

标签: c# windows batch-file service

我必须从C#运行.bat文件... 我使用这种方法。

 file = "C:\\Diego\\PublishCore\\Startup_service.bat";
                ProcessStartInfo psi = new ProcessStartInfo();
                psi.CreateNoWindow = true; 
                psi.FileName = file;
                psi.UseShellExecute = true;
                psi.Verb = "runas";
                Process.Start(psi);

.BAT已执行...但是我要求执行的操作未执行...

如果我的.bat说MKDir MyDir ...,它会毫无问题地创建一个名为MyDIr的目录。

但是当我的蝙蝠说dotnet myApp.dll时,会打开和关闭一个cmd Windows,但不会启动myApp应用程序。...

如果双击我的.bat,就可以正常运行。

我缺少什么?为什么应用无法开始。

谢谢。

1 个答案:

答案 0 :(得分:0)

我解决了...

问题在于,当我的蝙蝠运行指令dotnet myApp.dll时。 我将路径文件设置在文件所在的位置,但是它是在我的解决方案所在的位置执行的,而不是在我拥有.bat文件的目录中运行。

我必须设置WorkingDirectoryArguments

 C:\\Diego\\PublishCore\\Startup_InomCore.bat
 
 ProcessStartInfo psi = new ProcessStartInfo();
                psi.WorkingDirectory = "C:\\Diego\\PublishCore";
                //   psi.CreateNoWindow = true; 
                psi.FileName = @"cmd.exe";
                psi.Arguments = "/c start /wait " + "C:\\Diego\\PublishCore\\Startup_InomCore.bat";
                //     psi.UseShellExecute = true;
                psi.Verb = "runas"; 
                var process = Process.Start(psi);