我创建了一个C#应用程序,我需要以两种模式访问我的应用程序:
app.exe
app.exe -c <some_other_options>
配置我的应用程序时的问题,如Windows Application
控制台版本未启动。但当我将其更改为Console Application
时,它在命令行中以2种所需模式启动,但是当我通过鼠标点击启动它时,我用我的gui打开了黑色控制台,当我关闭黑色控制台时,GUI也是闭合。
是否可以通过c#来满足我的需求?
我的主要功能是:
[STAThread]
static void Main(string[] args)
{
var options = new Options();
var parser = new CommandLineParser(new CommandLineParserSettings(Console.Error));
if (args.Count() != 0)
{
try
{
if (!parser.ParseArguments(args, options))
Environment.Exit(1);
customfunc(options);
Environment.Exit(0);
}
catch (Exception e)
{
System.Console.WriteLine("Fatal error on parsing: " + e.Message);
Environment.Exit(1);
}
}
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frmApp());
}
}
答案 0 :(得分:2)
我能看到的一种方法是拥有3个组件:
winforms和console app都会为后台逻辑引用相同的公共库,并且您只在每个应用程序项目中实现UI部分。唯一的问题是,每个应用程序必须有2个不同的可执行文件。
我认为可能有一种方法可以在同一个应用程序中执行您想要的操作,但我不知道如何使控制台应用程序不显示控制台窗口。
答案 1 :(得分:0)
我根据this document的回答找到了解决方案。
它就像一个魅力