57

我的 MS Visual C# 程序正在编译和运行得很好。我关闭 MS Visual C# 以开始做其他生活中的事情。

我重新打开它并(在做任何其他事情之前)转到“发布”我的程序并收到以下错误消息:

Program C:\myprogram.exe 不包含适用于入口点的静态“Main”方法

嗯?是的,它确实......而且一切都在 15 分钟前工作。当然,我可以相信我在关闭之前不小心撞到了什么或做了什么……但是什么?我该如何解决这个问题?

我的 Program.cs 文件如下所示:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Threading;

namespace SimpleAIMLEditor
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            Application.Run(new mainSAEForm());
        }
    }
}

......那里有一些评论。没有其他错误。

帮助?

4

16 回答 16

58

文件上的属性是否设置为编译?

于 2008-12-22T17:45:32.463 回答
51

我为这个错误而苦苦挣扎,只是因为我的一个class library项目 was set acceddentaly控制台应用程序

所以确保你的类库项目是输出类型的类库

在此处输入图像描述

于 2016-08-04T12:25:25.887 回答
21

好的,我也在看这个问题。就我而言,解决方案太简单了。我在解决方案中添加了一个新的空项目。新添加的项目会自动设置为控制台应用程序。但是由于添加的项目是一个“空”项目,因此该新项目中不存在 Program.cs。(正如预期的那样)

我需要做的就是将项目属性的输出类型更改为类库

于 2011-05-15T15:41:20.597 回答
15

如果您有 WPF 或 Silverlight 应用程序,请确保 App.xaml 具有“ApplicationDefinition”作为文件属性上的 BuildAction。

于 2010-04-14T15:54:10.833 回答
7

我有这个错误并通过这个解决方案解决。

--> Right click on the project

--> and select "Properties"

--> then set "Output Type" to "Class Library".
于 2019-06-22T11:35:57.953 回答
5

检查项目的属性。在“应用程序”选项卡上,选择您的Program类作为启动对象:

替代文字

于 2008-12-22T17:55:11.850 回答
4

这很奇怪。您的程序是否成功编译并运行并且仅在“发布”时失败,还是现在每次编译都失败?

另外,您是否可能将文件的属性更改为Build Action其他内容Compile

于 2008-12-22T17:43:52.670 回答
3

我遇到了这个问题,这是因为我没有使用最新版本的 C#(撰写本文时为 C# 7.3),我不得不将下面的internal访问修饰符更改为public.

internal class Program
 {
    public static void Main(string[] args)
    {
        //My Code
    }
  }

或修改.csproj以使用最新版本的 C# (这样意味着我仍然可以将上述类保留为internal):

<PropertyGroup>
    <LangVersion>latest</LangVersion>
    <NoWin32Manifest>true</NoWin32Manifest>
</PropertyGroup>
于 2018-07-27T13:23:34.357 回答
2

对我来说,发生同样的错误是因为我重命名了 Program 类的命名空间。 项目“应用程序”选项卡
中的“启动对象”字段仍然引用旧的命名空间。选择新的启动对象解决了问题,并从该列表中删除了过时的条目。 您可能还想更新同一“应用程序”选项卡中的“默认命名空间”字段。

于 2013-05-08T16:58:17.447 回答
1

将该Main方法放在在 Visual Studio 中正确配置为启动对象的类中,这一点很重要:

  • 在项目资源管理器中右键单击您的项目;选择“属性...”
  • 在属性对话框中,选择“应用程序”选项卡
  • 在应用程序选项卡中,SimpleAIMLEditor.Program从下拉列表中选择您的启动对象

现在再次运行您的应用程序。错误将消失。

于 2017-03-13T06:41:54.320 回答
1

什么对我有用:关闭 MS Visual Studio,然后启动 Visual Studio 并打开解决方案。然后错误消息消失了。

于 2020-07-06T06:02:15.403 回答
0

我发现 Program.cs 文件不是解决方案的一部分。我做了一个添加现有项目并将文件(Program.cs)添加回解决方案。

这更正了错误:错误 1 ​​程序 '..... 不包含适合入口点的静态 'Main' 方法

于 2009-02-09T19:45:05.873 回答
0

我的问题是我不小心设置了 Main 的参数

静态无效主要(对象值

感谢我的重构工具。花了几分钟才弄清楚,但应该在此过程中帮助某人。

于 2012-08-29T01:35:25.090 回答
0

在我的情况下(没有一个建议的解决方案适合),问题出在我使用async/await的方法签名main看起来像这样的地方:

static async void Main(string[] args)

我只是删除async了,所以该main方法看起来是这样的:

static void Main(string[] args)

我还删除了所有实例await并用于.Result异步调用,因此我的控制台应用程序可以愉快地编译。

于 2019-04-03T19:53:06.343 回答
0

我变了

public static void Main(string[] args)

public async static void Main(string[] args)

问题是它需要成为一项任务:

public async static Task Main(string[] args)
于 2021-05-20T16:38:10.687 回答
0

就我而言,这是一个显示此错误的 XUnit 测试库。我错误地删除了Microsoft.NET.Test.Sdk包。

于 2022-02-02T10:00:28.943 回答