我正在按照 此 Microsoft 指南来创建 Windows 服务。
但是,当我尝试在名为“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 方法指定的错误“找不到 BrainiacV2.Program”
我做了教程告诉我的一切。
我有一个App.Config,一个Program.cs(上面的代码),一个BrainiacV2.cs,它保存了我所有的服务代码,并像这样开始
namespace BetfairBOTV2Service
{
public partial class BrainiacV2 : ServiceBase
{
public BrainiacV2()
{
InitializeComponent();
我的 ProjectInstaller.cs 上有两个安装程序对象 (名称)服务安装程序 显示名称:我的新 BetfairBotV2 服务名称:BrainiacVersion2
就是这样。
这是我遇到的唯一错误
该解决方案称为 BrainiacV2
我尝试将 Program.cs 中的代码更改为
新的 BrainiacV2()
它变成绿色,但然后我就明白了
找不到为主方法指定的 BrainiacV2.Program。
我做错了什么或需要改变什么?
任何帮助将不胜感激 - 谢谢!
Win 7、64 位、.NET 4.5、C#
重命名项目和默认命名空间后。我也必须改变这一点:
因此,在您创建项目时,默认的 Main 位于 BrainiacV2.Program 中,但您确实希望在 BetfairBOTV2Service.Program 中运行 Main
我必须改变我的命名空间和类。这与该错误无关(不是很有帮助!)
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);
}
}
}
一旦我做到了,一切都成功了!
看来是命名空间问题。
如果错误消息更有帮助的话那就太好了,因为涉及很多猜测工作!
感谢您的帮助。
看起来您指定了错误的类名。请参阅下面的评论。
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
几分钟前我遇到了同样的问题,在网上搜索解释时,我发现了这篇文章。多年来你可能已经找到了答案 但我想分享我的解决方案。 当我更改 Program 类的命名空间时,我的项目出现了错误。 通过将启动项目与新的命名空间对齐,我的项目再次运行。
因此,就您而言,启动项目应成为 BetfairBOTV2Service.Program。
就我而言,我重命名了我的解决方案和许多其他文件并给出了此错误。 解决了:在 csProj 文件中,启动文件仍然具有现已更改的旧名称,因此更改后,我能够成功构建。