错误“找不到为主要方法指定的 xxxx.Program”从 MS 示例创建 Windows 服务

Posted

技术标签:

【中文标题】错误“找不到为主要方法指定的 xxxx.Program”从 MS 示例创建 Windows 服务【英文标题】:Error "Could not find xxxx.Program specified for main method" creating Windows Service from MS example 【发布时间】:2014-08-28 18:36:16 【问题描述】:

我关注this Microsoft guide to create a windows service。

但是,当我尝试在名为“Program.cs”的自动生成页面上构建它时 里面有这段代码

namespace BetfairBOTV2Service

    static class Program
    
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main()
        
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] 
             
                new BrainiacVersion2() // not green though!!!!!
            ;
            ServiceBase.Run(ServicesToRun);
        
    

我收到为 Main Method 指定的错误“找不到 BrainiacV2.Program”

我做了教程告诉我的所有事情。

我有一个 App.Config、一个 Program.cs(上面的代码)、一个 BrainiacV2.cs,它保存了我的所有服务代码并像这样开始

namespace BetfairBOTV2Service

    public partial class BrainiacV2 : ServiceBase
    
        public BrainiacV2()
        
            InitializeComponent();

我的 ProjectInstaller.cs 上有两个安装程序对象 (名称) serviceInstaller 显示名称:我的新 BetfairBotV2 服务名称:BrainiacVersion2

就是这样。

这是我得到的唯一错误

解决方案称为 BrainiacV2

我已尝试将 Program.cs 中的代码更改为

新的 BrainiacV2()

它变成绿色,但我只是得到

找不到为 main 方法指定的 BrainiacV2.Program。

我做错了什么或需要改变?

任何帮助将不胜感激 - 谢谢!

Win 7、64 位、.NET 4.5、C#

【问题讨论】:

【参考方案1】:

重命名项目和默认命名空间后。我也不得不改变这个:

因此,在您创建项目时,默认 Main 位于 BrainiacV2.Program,但您确实希望在 BetfairBOTV2Service.Program 中运行 Main

【讨论】:

很高兴你发布了这个!【参考方案2】:

我不得不改变我的命名空间和类。这与那个错误无关(不是很有帮助!)

namespace BrainiacV2

    static class Program
    
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main()
        
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] 
             
                new Brainiac()
            ;
            ServiceBase.Run(ServicesToRun);
        
    

一旦我这样做了,一切都奏效了!

似乎是命名空间问题。

如果错误消息能更有帮助就更好了,因为这涉及到很多猜测工作!

感谢您的帮助。

【讨论】:

【参考方案3】:

您似乎指定了错误的类名。请参阅下面的 cmets。

namespace BetfairBOTV2Service

    static class Program
    
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main()
        
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] 
             
                new BrainiacVersion2(); // <-- this is what you have
                new BrainiacV2();       // <-- this is what you need
            ;
            ServiceBase.Run(ServicesToRun);
        
    

FWIW,我有几个教程 - here 和 here - 向您展示如何创建服务并自行安装。

HTH

【讨论】:

如果您在第一个代码 sn-p 中注意到我的 cmets,我尝试了您的建议并且它变为绿色(代码)但我收到相同的错误“找不到指定的“BrainiacV2.Program”主方法

以上是关于错误“找不到为主要方法指定的 xxxx.Program”从 MS 示例创建 Windows 服务的主要内容,如果未能解决你的问题,请参考以下文章

Informix 错误:发生了语法错误。错误代码:-201

我收到一个错误:“MetaMask - RPC 错误:错误:错误:[ethjs-rpc] rpc 错误与有效负载”

错误精灵错误跟踪器错误

网页打开显示错误500是啥意思

PHP错误处理

PHP的错误处理