C#将程序编译成2个exe文件

C#将程序编译成2个exe文件,c#,.net,compilation,C#,.net,Compilation,我正在使用Windows窗体用C#编写应用程序。有时我会更改项目的设置,并将“输出类型”设置为“控制台应用程序” 我想知道是否可以将项目作为Windows窗体应用程序和控制台应用程序编译成2.exe文件?您应该将逻辑放入dll并创建两个应用程序:一个控制台应用程序和一个winforms应用程序。那将是最干净的,在我看来也是最好的方式 因此,您可以处理不同的需求,并以最好的方式处理这两种应用程序类型。您应该将逻辑放入dll并创建两个应用程序:一个控制台应用程序和一个winforms应用程序。那将是

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


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

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


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

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

因此,您可以处理不同的需求,并以最好的方式处理这两种应用程序类型中的每一种。

要进一步展开,请想象您正在实现一个Tic-Tac-Toe游戏

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

public interface IUserInterface
{
    void ShowBoard();
    Move GetPlayerMove(Player player);
    void ShowWinnerAnimation(Player player);
    void ShowDrawAnimation();
    ///etc
}
现在,您可以实现不同的用户界面(控制台、网页、Windows窗体等),您可以通过界面将这些界面注入
游戏
对象:

IUserInterface myUserInterface = new WindowsFormsInterface();
var game = new Game(myUserInterface);
game.Run();
为了进一步扩展,假设您正在实现一个Tic-Tac-Toe游戏

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

public interface IUserInterface
{
    void ShowBoard();
    Move GetPlayerMove(Player player);
    void ShowWinnerAnimation(Player player);
    void ShowDrawAnimation();
    ///etc
}
现在,您可以实现不同的用户界面(控制台、网页、Windows窗体等),您可以通过界面将这些界面注入
游戏
对象:

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

不,这是不可能的,因为这两个项目完全不同。但是,您可以从控制台应用程序中创建表单,并具有一个命令行参数,指示您希望打开GUI。您可以检查一些特定的可执行参数,并使用
alloconsole
在特殊标志的情况下分配控制台。不,这是不可能的,因为这两个项目完全不同。但是,您可以从控制台应用程序中创建表单,并具有一个命令行参数,指示您希望打开GUI。您可以检查一些特定的可执行参数,并在出现特殊标志时使用
alloconsole
分配控制台。很好的示例:)很好的示例:)