Я хочу, чтобы одно из моих приложений 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!
выводится на вывод. Однако при запуске файла /bin/Debug/Program.exe (или, соответственно, / Release) происходит сбой приложения.
Правильно ли я поступаю? Будет ли разумнее (т. Е. Занимать меньше времени на разработку), чтобы мой класс логики был DLL, которая загружается двумя отдельными приложениями? Или есть что-то совершенно другое, о чем я не знаю?
Заранее спасибо!