【问题标题】:C# compiling program into 2 exe filesC#将程序编译成2个exe文件
【发布时间】:2017-07-14 08:20:33
【问题描述】:

我正在使用 Windows 窗体在 C# 中编写应用程序。有时我会更改项目的设置并将“输出类型”设置为“控制台应用程序”。

我想知道是否可以将项目作为 Windows 窗体应用程序和控制台应用程序编译成 2 个 .exe 文件?

【问题讨论】:

  • 不,这是不可能的,因为这两个项目完全不同。但是,您可以从控制台应用程序中创建一个表单,并使用命令行参数指示您希望打开 GUI。
  • 您可以检查一些特定的可执行参数并使用AllocConsole分配控制台以防特殊标志。

标签: c# .net compilation


【解决方案1】:

您应该将您的逻辑放入 dll 并创建两个应用程序:一个控制台应用程序和一个 winforms 应用程序。这将是最干净的,在我看来是最好的方式。

因此,您可以处理不同的需求,并针对这两种应用程序类型以最佳方式处理它们。

【讨论】:

    【解决方案2】:

    为了扩展Mighty Badaboom's answer,假设您正在实现一个井字游戏。

    一个好的设计是在自己的类库 (dll) 中实现与用户界面分离的所有游戏逻辑。在这个类库中,您可以定义任何兼容的用户界面必须提供的基本常见行为:

    public interface IUserInterface
    {
        void ShowBoard();
        Move GetPlayerMove(Player player);
        void ShowWinnerAnimation(Player player);
        void ShowDrawAnimation();
        ///etc
    }
    

    现在,您可以实现不同的用户界面(控制台、网页、Windows 窗体等),您可以通过该界面将这些用户界面注入您的Game 对象:

    IUserInterface myUserInterface = new WindowsFormsInterface();
    var game = new Game(myUserInterface);
    game.Run();
    

    【讨论】:

    • 很好的例子:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多