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

时间:2016-07-25 20:26:55

标签: c# winforms console-application

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

是否可以将命令行参数传递给可执行文件,以便在" Console"中运行应用程序。模式或" Windows应用程序"模式取决于用户的愿望?如果没有,如果应用程序将显示控制台,还有其他方法可以动态更改吗?

2 个答案:

答案 0 :(得分:0)

不,你不能。控制台应用程序和winforms应用程序之间的根本区别非常深刻。编译应用程序后,无法在运行时更改它。

答案 1 :(得分:0)

我认为你有X-Y Problem。根本问题是您希望用户能够运行控制台或WinForms程序,它们都执行相同的操作。一个解决方案是拥有一个可以同时运行的程序,但正如@roryap指出的那样,这是不可能的。

第二种解决方案是将程序的业务逻辑放入单独的库中。然后,您可以编写一个访问该库的控制台程序和一个也可以访问该库的WinForms GUI。然后,用户决定运行哪个程序。这是一种将应用程序分成多个层的经过验证的方法。我建议你走这条路。您会发现面向用户的图层(控制台,WinForms)很小。将来,如果要创建Web前端或WPF前端,只需要编写前端部分,业务逻辑层就不会发生变化。