Как из приложения asp.net core 3.1 запустить консольное приложение из другой сборки
Имеется два приложения. Первое - консольное, второе - сервер на asp.net core 3.1. Как мне при запуске сервера запускать первое приложение?
Startup.cs
public Startup(IConfiguration configuration)
{
Configuration = configuration;
InitConsoleApp();
}
private static void InitConsoleApp()
{
ProcessStartInfo startInfo = new ProcessStartInfo("./bin/Debug/netcoreapp3.1/CoolParking.Bl.exe");
startInfo.WindowStyle = ProcessWindowStyle.Normal;
Process.Start(startInfo);
}
Ответы (2 шт):
System.Diagnostics.Process.Start("имя_вашего_файла.exe"); /// если у вас exe
// или
System.Diagnostics.Process.Start("dotnet", "имя_вашего_файла.dll"); /// если у вас dll
Дополнительное чтение: https://docs.microsoft.com/ru-ru/dotnet/api/system.diagnostics.process.start?view=netcore-3.1
Код веб-страницы и серверного элемента управления ASP.NET выполняется в контексте рабочего процесса ASP.NET на веб-сервере. При использовании метода Start на веб-странице ASP.NET или серверном элементе управления новый процесс выполняется на веб-сервере с ограниченными разрешениями. Процесс не запускается в том же контексте, что и браузер клиента, и не имеет доступа к рабочему столу пользователя. Соответственно, ваше приложение CoolParking.Bl.exe запускается и должно быть видно в процессах в диспетчере задач, но оно не получит GUI, и вы его не увидите.
Опишите подробнее свою задачу, для чего вам нужно запускать из контекста рабочего процесса веб-сервера консольное приложение, и мы вместе придумаем решение.