如何修复 WPF 错误:“程序不包含适合入口点的静态 'Main' 方法”?

Posted

技术标签:

【中文标题】如何修复 WPF 错误:“程序不包含适合入口点的静态 \'Main\' 方法”?【英文标题】:How to fix WPF error: "Program does not contain a static 'Main' method suitable for an entry point"?如何修复 WPF 错误:“程序不包含适合入口点的静态 'Main' 方法”? 【发布时间】:2010-10-09 07:17:08 【问题描述】:

突然我的整个项目完全停止编译,显示以下消息:

程序“path_to_obj_project_folder”不包含静态“Main” 适合入口点的方法

我没有对项目属性进行任何更改,只是添加了一些类,将其他一些类移动到文件夹中。它是一个 WPF 应用程序项目,所以应该没问题。入口点是它应该在的地方,文件 App.xaml 根本没有被修改:(

我应该怎么做才能让它再次工作?

注意供参考:如果重命名App.xaml,可能会发生这种情况。正如 OP 所说,App.xaml 没有改变;但是,这是为任何重命名 App.xaml 的人添加的。

【问题讨论】:

【参考方案1】:

检查 App.xaml 的属性。 Build Action 还是 ApplicationDefinition 吗?

【讨论】:

谢谢,部分解决了问题。我已将旧项目中的所有文件复制到新的 Windows Store App 项目中,并且 Build Action 设置为 Page 而不是 ApplicationDefinition。我切换回ApplicationDefinition,但我也不得不删除文件夹obj\Debug +1:太棒了!真是救命稻草。我正要创建一个新项目并复制所有内容,但这成功了。我学到了什么:不要乱用 App.xaml...它会咬人。 我还不得不手动删除 obj\Debug; RebuildAll 没有修复它,不知道为什么...... VS 2017 UWP 应用程序中的相同问题。构建是针对Page 而不是ApplicationDefinition 当您排除并重新包含 App.xaml 文件时,Build Action 切换到 Page【参考方案2】:

也许属性中的“输出类型”->项目的应用程序必须是“类库”而不是控制台或windows应用程序。

【讨论】:

使用 CLI 编译器时,类库 输出类型可以由-t:library 参数指定。【参考方案3】:

以防万一有人遇到同样的问题...我收到了这个错误,结果是我的 App.xaml 文件中的<Application.Resources>。我在资源字典标签之外有一个资源,这导致了这个错误。

【讨论】:

我的变化略有不同。我有空的 Application.Resources 标签并删除了那些为我修复的标签。【参考方案4】:

在我的例子中(在手动重命名应用程序命名空间之后)我必须在项目属性中重新选择 Startup 对象。

【讨论】:

【参考方案5】:

如果您正在处理一个在 VS 2010(Beta 1)中启动然后移至 VS 2008 的 WPF 项目,您也可能会遇到这种情况。

在项目属性下,未设置 .NET 框架版本(因为 .NET 4.0 在 VS 2008 中无效),并且由于某种原因导致此错误。

如果您设置 .NET 框架(例如设置为 .NET 3.5),错误就会消失。

【讨论】:

【参考方案6】:

以防万一有人仍然遇到同样的错误,即使有上述所有帮助:我遇到了这个问题,我尝试了这里给出的所有解决方案,我刚刚发现我的问题实际上是我的错误列表中的另一个错误(这是关于一个丢失的图像设置为我的启动画面。我只是将其路径更改为正确的路径,然后一切都开始工作)

【讨论】:

【参考方案7】:

我遇到了同样的错误,但后来我发现我在 Main 方法中输入了小 m 而不是大写 M

【讨论】:

是的,忘记区分大小写了。谢谢! 而是看看,如果您的应用程序的“属性”已正确定义为默认启动项目/类。 ***.com/questions/9538404【参考方案8】:

项目属性\输出文件->选择类库:)

【讨论】:

【参考方案9】:

我猜 pixparker 想说什么,但仍然不够清楚,至少对我来说,请确保...所有“其他项目”都有一个“类库”的“输出类型”被选中,而... 只有“一个项目”被选为“窗口应用程序”“控制台应用程序”输出。

【讨论】:

【参考方案10】:

在处理 WPF/UPF 应用程序时也可能出现此类错误,并且在您的项目的 .csproj 中使用了错误的 SDK,即 <Project Sdk="Microsoft.NET.Sdk"> 而不是 <Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

【讨论】:

【参考方案11】:

我在将 .net framework v4.7.2 更改为 .net core 3.1 时遇到了问题, 并通过添加解决

<PropertyGroup>
    <UseWPF>true</UseWPF>   
</PropertyGroup>

.csproj

【讨论】:

以上是关于如何修复 WPF 错误:“程序不包含适合入口点的静态 'Main' 方法”?的主要内容,如果未能解决你的问题,请参考以下文章

如何修复 WPF 控件的简单 MouseOver 动画?

如何修复无法加载的 Expression Blend 包?

如何修复 WPF Datagrids 中的“双向绑定需要路径或 XPath”异常?

教你如何解决access数据库连接错误

如何在WPF Datagrids中修复“双向绑定需要路径或XPath”异常?

WPF:在 UserControl 的构造函数中加载数据会破坏设计器