如何从一个 Visual Studio 项目创建两个不同的可执行文件

How to create two different executables from one Visual Studio project

我有一个主要的可执行文件,它根据保存在配置文件中的设置运行。我希望能够通过不同的可执行文件更改配置文件中的设置。

有没有一种简单的方法可以在一个 Windows Forms 项目中构建这两个不同的可执行文件?这意味着当我按下构建时,会在同一个解决方案文件夹中创建两个不同的 EXE 文件 - 一个更改配置文件,另一个使用它。

我知道如果我创建两个使用相同解决方案文件夹的单独项目,这是可能的,但我希望一步完成。

我假设要执行此操作,我需要一个具有两个 "Main" 函数的项目。这可能吗?

配置文件的想法是您不需要构建多个可执行文件。 ;-)

您可以使用配置管理器,创建新的解决方案配置并更改该配置的输出目录。

您可以根据需要在一个解决方案中构建任意数量的程序集。程序集可以生成 DLL 文件或 EXE 文件。

创建解决方案(或打开现有解决方案)。

  1. 右键单击解决方案资源管理器中的根节点并选择添加新建项目并选择项目类型你喜欢加

  2. 右键单击解决方案资源管理器中的项目项并选择 属性构建输出路径。设置为构建它的所需目录。对其他项目重复此操作。

通过这种方式,您可以在解决方案资源管理器中获得以下内容:

  • 我的解决方案
    • MyCommonCode(Class 库,结果为 MyCommonCode.dll)
    • MyMainApp(Windows 表单应用程序,结果为 MyMainApp.exe)
    • MyConfigApp(Windows 表单应用程序,结果为 MyConfigApp.exe)

MyCommonCode 程序集包含两个 EXE 文件都使用的共享代码,例如配置文件的标识符等。

MyMainApp 是主应用程序的 GUI 应用程序(Windows Forms、WPF 等),带有对 MyComonCode 项目的项目引用。

MyConfigApp 是一个 GUI 应用程序,用于使用对 MyCommonCode 项目的项目引用来编辑配置值。

构建解决方案后,您将获得以下二进制文件:MyCommonCode.dllMyMainApp.exeMyConfigApp.exe

根据评论更新:

一次编译-运行 每个项目只能构建一个二进制文件(DLL 或EXE)。您可以像上面的答案那样做:将大部分代码移动到 common/core DLL 中,并为两个 EXE 文件创建两个精简项目,这两个 EXE 文件仅 "configure and use" 中央 common/core DLL 文件。

您可以使用编译器定义基于同一项目构建不同的 EXE 文件。您甚至可以定义自己的定义。但是根据编译-运行,您只能为每个项目构建一个二进制文件(DLL、EXE)——一个或另一个,但不能同时构建两个。