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

Gev*_*321 7 c# config exe winforms visual-studio-2013

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

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

我知道如果我创建两个使用相同解决方案文件夹的独立项目,这是可行的,但我希望一步完成所有这些.

我假设这样做,我需要一个带有两个"主要"功能的项目.这可能吗?

Mar*_*arc 12

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

创建解决方案(或打开现有解决方案).右键单击"Solution Explorer"中的根节点,然后选择Add> New Project并选择要添加的项目类型.在解决方案资源管理器中右键单击项目项,然后选择"属性">"构建"> 设置到所需的目录,在其中构建它.对其他项目重复此操作.

因此,您可以在解决方案资源管理器中获取以

  • MySolution
    • MyCommonCode(类库,导致MyCommonCode.dll)
    • MyMainApp(Winforms App,结果MyMainApp.exe)
    • MyConfigApp(Winforms App,结果MyConfigApp.exe)

MyCommonCode程序集包含两个exe正在使用的共享代码,如配置文件的标识符等.

MyMainApp是GUI应用程序(Winforms,WPF等),适用于主应用程序,具有MyComonCode项目的项目引用.

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

这样,您将获得:MyCommonCode.dll,MyMainApp.exeMyConfigApp.exe.

根据评论更新:

一个编译运行只能为一个项目构建一个二进制文件(dll或exe) - 据我所知.上面的代码答案是什么:将大部分代码移动到公共/核心DLL中,并为两个exe创建两个瘦项目,这两个exe只"配置和使用"中央公共/核心DLL.

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

  • 当然,这一切都是正确的,但这不是他所要求的.问题标题是*项目*中的多个可执行文件.他进一步说:"我知道如果我创建两个使用相同解决方案文件夹的独立项目,这是可行的" (3认同)
  • 尽管如此,我认为对他的问题的简短回答是"不",并且会说这是解决问题的正确方法.将配置和代码读取/更新到共享的"Common"项目中. (2认同)