【发布时间】:2013-07-02 19:53:57
【问题描述】:
我正在编写一个基于 WPF 界面的小实用程序。我还希望能够通过执行带有命令行参数的程序来自动执行该实用程序执行的相同任务。将这两个任务合并到一个程序中是不是一个坏主意?我拥有我的工具在单独的共享库中执行的实际逻辑和功能。所以如果它们是分开的,我就不会复制一大堆代码。
我想在我的 App.cs 文件中做这样的事情
private void Application_Startup(object sender, StartupEventArgs e)
{
if (e.Args.Length > 1)
{
//Go do automated tasks
}
else
{
//open GUI
Window window = new Window();
this.MainWindow = window;
window.Show();
}
}
【问题讨论】:
-
有些应用程序已经这样做了一段时间......为什么这是一个坏主意?如果您需要锤子,请使用锤子。
-
一个问题是,如果 GUI 支持在启动时绑定(而不是基于完全动态反射),那么您将限制控制台应用程序可以运行的位置。你也可能会放慢速度。 .net/wpf 可能不是一个大问题,但在其他情况下可能是一个问题。
-
你总是可以遵循 Visual Studio 使用的 hack :) 有两个可执行文件:一个用于 GUI,一个用于控制台。控制台可执行文件获得 .com 扩展名(尽管是 PE),因为 .com 优先于 .exe(在默认 PATHEXT 中)。因此,如果你从 cmd.exe 执行它,你会得到控制台版本,如果你运行 .exe,你会得到一个 GUI。
标签: c# .net wpf console-application