我按照本指南创建了一个Windows服务> http://msdn.microsoft.com/en-us/library/zt39148a(v=vs.110).aspx
然而,当我尝试在自动生成的页面上构建它时,名为" 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);
}
}
}
我收到此错误&#34;找不到BrainiacV2.Program&#34;为主方法指定
我做了教程告诉我的所有事情。
我有一个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 bit,.NET 4.5,C#
答案 0 :(得分:16)
重命名项目和默认命名空间后。我也不得不改变这个:
因此,在您创建项目的情况下,默认Main位于BrainiacV2.Program中,但您确实希望在BetfairBOTV2Service.Program中运行Main
答案 1 :(得分: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);
}
}
}
一旦我做完了,一切都奏效了!
看起来像名称空间问题。
如果错误消息更有帮助,那会很好,因为涉及很多猜测工作!
感谢您的帮助。
答案 2 :(得分:0)
您似乎正在指定错误的类名。请参阅以下评论。
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