WPF和控制台应用程序EXE在同一解决方案中

时间:2014-12-15 12:23:22

标签: c# wpf project console-application installshield

我有一个WPF应用程序将安装在几台客户端PC上。我使用 InstallShield Express Edition 作为部署工具。

我创建了一个不同的项目(DLL)来跟踪软件安装。基本上是一个独立的C#项目,可以在Windows注册表中读取,写入和执行一些验证检查,并且可以集成到其他WPF应用程序中(此项目/ DLL对其他应用程序非常有用) )。

我想要做的是创建一个.EXE文件来注册安装。这个.EXE未在主WPF应用程序中使用,但使用了我刚才谈到的.DLL

我设法通过使用单个控制台应用程序项目创建不同的解决方案并引用必要的DLL来实现这一目标。 但我真正想要的是在我的主应用解决方案中将其创建为项目,当我这样做时,除主应用程序可执行文件之外不会生成.EXE文件。

我可以做些什么来获取2 .EXE个文件(主应用和InstallationRegistration),还是我目前使用的唯一方式?

这更令人讨厌而不是问题,但仍然......在我开发的所有不同应用程序中跟踪这个小模块的更好方法。

由于

3 个答案:

答案 0 :(得分:1)

您是说控制台EXE不是作为解决方案的构建/运行的一部分创建的吗?

或者Console EXE不是作为InstallShield部署项目的一部分创建的?

如果您指的是在构建/运行解决方案时构建Console EXE:

通常,当您点击F5时,Visual Studio只会构建您指定为Startup及其依赖项的项目。

您必须明确构建该控制台应用程序或整个解决方案。

如果您希望每次按F5时都可以将其指定为启动项目之一,则可以将其指定为其中一个;或者将其指定为MainApp项目的依赖项(这有点作弊,但它可以完成工作)。

答案 1 :(得分:1)

在尝试了几种不同的方法后,我得到了那个DUH!时刻。

VS正在为主应用程序和控制台应用程序创建两个.EXE文件,只有每个文件都在各自的调试/发布文件夹中

例如:

  

主要应用 - > C:\项目\ MyApp的\ MyAppUI \ BIN \调试\ MyAppUI.exe

     

Intallation Control.EXE - > C:\项目\ MyApp的\ InstControl \ BIN \调试\ InstControl.exe

注意:C:\ Projects \ MyApp是解决方案文件夹。

有点理解他们在自己的文件夹中,但另一方面,VS中应该有一个选项来选择我们想要发送所有解决方案的地方.EXE

希望将来帮助某人。

答案 2 :(得分:0)

默认情况下,所有中间编译工件都放在解决方案中给定项目下的obj文件夹中(到目前为止,我不知道这可以更改)。

对于项目输出,默认情况下,它们位于bin \ Debug或bin \ Release下,具体取决于您的构建配置。

然而,这可以从项目的属性中更改;特别是Build选项卡有一个"输出路径"您可以选择指定构建输出位置。

这必须在每个项目的基础上完成,但我通常在Solution根目录下创建一个 SolutionDir \ bin 文件夹,并将所有项目输出路径指向 SolutionDir \ bin \ Debug SolutionDir \ bin \ Release 视具体情况而定。通过在项目之间具有复杂相互依赖性的大型解决方案中避免输出程序集的多个副本,这具有额外的优势或减少 SolutionDir 的总大小。

这有帮助吗?