Я хочу, чтобы одно из моих приложений Windows Forms запускалось программно - из командной строки. В процессе подготовки я отделил логику в своем классе от Формы. Теперь я застрял, пытаясь заставить приложение переключиться туда и обратно на основе наличия аргументов командной строки.
Вот код для основного класса:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
string[] args = Environment.GetCommandLineArgs();
if (args.Length > 1) // gets passed its path, by default
{
CommandLineWork(args);
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
private static void CommandLineWork(string[] args)
{
Console.WriteLine("It works!");
Console.ReadLine();
}
где Form1
- моя форма, а строка It works!
является просто заполнителем для фактической логики.
Прямо сейчас, когда вы запускаете это из Visual Studio (с аргументами командной строки), фраза It works!
печатается в Output. Однако при запуске файла /bin/Debug/Program.exe(или/Release, если на то пошло) приложение сбой.
Я собираюсь сделать это правильно? Будет ли иметь смысл (т.е. Меньше времени на разработку), чтобы мой логический класс был DLL, который загружается двумя отдельными приложениями? Или есть что-то совершенно иное, что я не знаю?
Спасибо заранее!