Diego
Diego

Reputation: 2372

c# run .bat file application as administrator do not start

I have to run a .bat file from c#... I use this method.

 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 is executed... but the action I ask to perfom it does not execute...

If my .bat says MKDir MyDir... Its creates a Directory called MyDIr with no problems.

But when my bat says dotnet myApp.dll, a cmd Windows opens and closes, but it does not start myApp aplication....

If a doublé-click my .bat is runs fine.

What I am missing? Why the aplication does not start?

Upvotes: 1

Views: 1515

Answers (1)

Diego
Diego

Reputation: 2372

I solved it...

The problem was that, as my bat run the instruction dotnet myApp.dll. I set the path file where the file was, but it was executed in the location where the my Solution is, instead of running in the same directory where I have .bat file.

I have to set WorkingDirectory and Arguments

 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);

Upvotes: 1

Related Questions