【发布时间】:2016-09-28 15:52:17
【问题描述】:
这个问题不是关于是否使用服务与非服务(已经有几个 SO 问题涵盖了这一点)。
鉴于我已决定使用服务,它应该构建为 Windows 应用程序还是控制台应用程序?
我问是因为我使用Visual Studio 2015服务项目模板(Visual C#/Windows/Classic Desktop/Windows Service)创建一个练习项目,它默认为Windows Application。如果我试图事先预测它会选择什么,我会错误地预测控制台应用程序。
我怀疑这两种方法最终都会起作用,但是为了满足我的编码强迫症,是否有合理的技术理由来选择其中一种(例如避免启动不必要的 conhost.exe 进程或其他东西)?
FWIW,我使用的是 C#/.NET 4.0。
【问题讨论】:
-
您可以在“添加新项目”窗口中使用 Windows 服务模板。
-
“Windows 应用程序”是什么意思?一个 WinForms 项目?在 Windows 上运行的任何项目都是“Windows 应用程序”,包括“控制台应用程序”。
-
@gunr2171 在 PE 标头中有一个标志,表明可执行映像是 GUI 应用程序还是控制台应用程序(查看
IMAGE_OPTIONAL_HEADER.Subsystem) -
“Windows 应用程序”是 Visual Studio 自己的描述,如项目属性的“应用程序”选项卡上右侧的“输出类型:”下所示。大多数人只是说“winforms”作为这个的简写。
-
@amonroejj,好吧。我以为您在谈论项目类型“Windows 应用程序”。
标签: c# .net winforms visual-studio console-application