我编写了一个可以在命令行上运行或使用 WPF UI 运行的应用程序。
[STAThread]
static void Main(string[] args)
{
// Does magic parse args and sets IsCommandLine to true if flag is present
ParseArgs(args);
if(IsCommandLine)
{
// Write a bunch of things to the console
}
else
{
var app = new App();
app.Run(new Window());
}
}
我将项目的输出类型设置为控制台应用程序,如果我尝试通过双击 exe 来执行它,则会弹出一个控制台窗口。如果未设置标志(通过命令参数传递),我不想向用户显示控制台窗口。
但是,如果我将项目的输出类型设置为 Windows 应用程序,双击行为很好,但是当我在控制台中运行它时,我没有得到任何控制台输出(Console.Writeline)
最好的选择是将实际执行工作的代码抽象到一个没有 UI 的单独类库中,然后创建两个应用程序,一个是 Console,另一个是调用它的 WPF。
控制台应用程序和 WPF 应用程序具有完全不同的应用程序模型,因此您不能在两个应用程序中重复使用相同的代码。
拥有单独的类库允许您执行其他操作,例如在其他应用程序(例如网站或客户端/服务器体系结构)中使用它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)