.net - 不受 Visual Studio 干扰的 Windows 服务

标签 .net windows-services designer

我想在没有 Visual Studio 设计器的“帮助”的情况下创建和管理 Windows 服务应用程序。

由于这是 .NET,根据 MSDN 和设计者所做的判断,这意味着继承自 Installer ,以及构建和处理ServiceProcessInstallerServiceInstaller能够管理服务的安装时执行。

运行时,这意味着创建一个 ServiceBase子类并从 Main 开始使用 ServiceBase.Run (并覆盖各种 ServiceBase 事件处理方法)。

但是,当我这样做时,Visual Studio 坚持处理 InstallerServiceBase子类作为设计者编辑的文件。这并不能完全提高可读性,更不用说它通常根本无法处理手写代码的事实。 我想避开设计师保持事情的可管理性(避免模糊的谁知道什么时候运行,特别是对于难以测试和调试的代码,例如 Windows 服务,毕竟必须安装才能运行),并且还能够在运行时指定服务名称,而不是在编译时 - 设计者不支持。

如何在没有所有垃圾的情况下创建 Windows 服务应用程序?

最佳答案

ServiceBase源自 Component .要禁用设计器 View ,您可以像这样附加属性:

[System.ComponentModel.DesignerCategory("Code")]
public class MyService : ServiceBase
{

}

关于.net - 不受 Visual Studio 干扰的 Windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4946202/

相关文章:

c# - NetworkStream.Length 替代

c++ - 使用Qt设计器时如何创建main.cpp?

java - Android Studio 2.2.0.12 设计器自动在 View ID 之前添加 "@+id"前缀,这会导致此异常错误

c# - 是什么让我的计时器运行不准确?

c# - 使用可选参数从 F# 对象在 C# 中创建对象

c# - 使用 C# 的文件路径

.net - 系统错误 5 启动 .NET 服务时访问被拒绝

javascript - jQuery UI (RAD/GUI) 表单设计器

c# - `typeof(T).IsAssignableFrom(x.GetType())` 可以安全地重写为 `x is T` 吗?

c# - 创建服务还是后台应用程序?