本文告诉大家如果复制网上一段代码发现 System.ServiceProcess 提示找不到方法或定义,需要手动添加引用

例如下面一段代码

using System.ServiceProcess;

        private static bool IsWindowsManagementInstrumentationAvailable
        {
            get
            {
                try
                {
                    using (var serviceController = new ServiceController("Winmgmt"))
                    {
                        return serviceController.Status == ServiceControllerStatus.Running;
                    }
                }
                catch (Exception)
                {
                    return false;
                }
            }
        }

在编译的时候提示

The type or namespace name 'ServiceProcess' does not exist in the namespace 'System' (are you missing an assembly reference?)


错误	CS0246	未能找到类型或命名空间名“ServiceController”(是否缺少 using 指令或程序集引用?)

修复方法是右击依赖项,点击添加引用,在程序集找到 System.ServiceProcess 点击引用就可以

如果是 SDK 的 csproj 可以直接在项目文件添加下面代码

    <ItemGroup>
      <Reference Include="System.ServiceProcess" />
    </ItemGroup>

本文会经常更新,请阅读原文: https://dotnet-campus.github.io//post/dotnet-%E4%BF%AE%E5%A4%8D%E6%89%BE%E4%B8%8D%E5%88%B0-System.ServiceProcess-%E5%AE%9A%E4%B9%89.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 lindexi (包含链接: https://dotnet-campus.github.io/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系