交替运行控制台应用程序作为Exe和WinExe

本文关键字:Exe WinExe 应用程序 运行 控制台 | 更新日期: 2023-09-27 17:58:37

我正在运行一个C#控制台应用程序,其输出类型设置为"Windows应用程序",以防止在正常使用过程中看到控制台。然而,我希望可以选择将程序作为控制台应用程序随意运行,以防用户想要排除故障并查看控制台的输出。

是否可以根据用户的需要,将命令行参数传递给可执行文件,以在"控制台"模式或"Windows应用程序"模式下运行应用程序?如果没有,如果应用程序是否显示控制台,是否有其他方法可以随时更改?

交替运行控制台应用程序作为Exe和WinExe

我认为您有一个X-Y问题。根本问题是,您希望用户能够运行控制台或WinForms程序,这两个程序都做相同的事情。一种解决方案是让一个程序同时运行,但正如@roryap所指出的,这是不可能的。

第二种解决方案是将程序的业务逻辑放入一个单独的库中。然后,您可以编写一个访问此库的控制台程序,以及一个访问该库的WinForms GUI。然后用户决定运行哪个程序。这是一种行之有效的将应用程序分离为多个层的方法。我建议你走这条路。您会发现面向用户的层(控制台、WinForms)很小。将来,如果你想做一个Web前端,或者WPF前端,你只需要写前端部分,业务逻辑层不会改变。

不,你不能。控制台应用程序和winforms应用程序之间有一个非常深刻的根本区别。一旦编译了应用程序,就无法在运行时对其进行更改。