我的MS Visual C#程序正在编译并运行得很好。 我关闭了MS Visual C#,以便在生活中做其他事情。
我重新打开它(在执行任何其他操作之前)转到“发布”我的程序并收到以下错误消息:
程序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());
}
}
}
......那里有一些评论。没有其他错误。
帮助?
答案 0 :(得分:49)
文件中的属性是否设置为编译?
答案 1 :(得分:23)
答案 2 :(得分:20)
我需要做的就是将项目属性的输出类型更改为类库
答案 3 :(得分:12)
如果您有WPF或Silverlight应用程序,请确保App.xaml具有“ApplicationDefinition”作为文件属性上的BuildAction。
答案 4 :(得分:5)
答案 5 :(得分:4)
这很奇怪。您的程序是否已成功编译并运行,并且仅在“发布”时失败,或者现在每次编译都失败?
另外,您是否将文件的属性“Build Action
更改为Compile
以外的其他内容?
答案 6 :(得分:2)
对我来说,发生了同样的错误,因为我重命名了Program类的名称空间。
项目的“应用程序”选项卡中的“启动对象”字段仍引用旧命名空间。选择新的启动对象解决了问题,并从该列表中删除了过时的条目。
您可能还想在同一“应用程序”选项卡中更新“默认命名空间”字段。
答案 7 :(得分:1)
我发现Program.cs文件不是解决方案的一部分。 我做了一个添加现有项目并将文件(Program.cs)添加回解决方案。
这更正了错误: 错误1程序'.....不包含适用于入口点的静态'Main'方法
答案 8 :(得分:1)
将Main
方法放在Visual Studio中作为启动对象正确配置的类中非常重要:
SimpleAIMLEditor.Program
现在再次运行您的应用程序。错误将消失。
答案 9 :(得分:1)
我遇到了这个问题,其原因是我没有使用最新版本的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>
答案 10 :(得分:0)
我的问题是我不小心为Main
设置了参数static void Main(对象值)
感谢我的重构工具。花了几分钟才弄清楚,但应该帮助一路上的人。
答案 11 :(得分:0)
在我的情况下(提出的解决方案都不适合),问题是我使用async/await
,其中main
方法的签名看起来是这样的:
static async void Main(string[] args)
我只是删除了async
,所以main
方法看起来像这样:
static void Main(string[] args)
我还删除了await
的所有实例,并使用.Result
进行异步调用,因此控制台应用程序可以愉快地进行编译。
答案 12 :(得分:0)
我遇到了这个错误,并通过此解决方案解决了。
--> Right click on the project
--> and select "Properties"
--> then set "Output Type" to "Class Library".
答案 13 :(得分:0)
我变了
public static void Main(string[] args)
到
public async static void Main(string[] args)
问题在于它需要是一个任务:
public async static Task Main(string[] args)
答案 14 :(得分:-1)
对我有用的是:关闭MS Visual Studio,然后启动Visual Studio并打开解决方案。错误消息消失了。