WPF(.NET Framework4.8)添加Main方法触发CS0111编译错误求助
解决WPF项目中Main方法重复定义的CS0111错误
问题根源
WPF项目默认会将App.xaml的构建操作设为ApplicationDefinition,VS会自动生成包含Main方法的App.g.cs文件。当你手动在App.xaml.cs中添加自定义Main方法时,就会和自动生成的版本冲突,触发CS0111错误。
解决步骤
修改App.xaml的构建属性
右键项目中的App.xaml文件,选择“属性”,将“生成操作”从ApplicationDefinition改为Page。这会告诉VS不再自动生成应用入口的Main方法。完善自定义Main方法的逻辑
在App.xaml.cs的自定义Main方法中,需要手动初始化应用并启动窗口,示例代码:[STAThread] public static void Main() { App app = new App(); app.InitializeComponent(); // 替换为你要启动的窗口类 app.Run(new MainWindow()); }注意:
InitializeComponent()必须调用,否则App.xaml中定义的资源、样式等不会生效。清理并重建项目
执行VS顶部菜单的「生成」→「清理解决方案」,再执行「生成解决方案」,确保旧的自动生成文件被彻底清理。
额外说明
旧版本VS(如2019)的WPF模板在移除StartUpUri后,自动生成Main方法的逻辑可能更宽松,所以未出现冲突。VS2022对项目构建的校验更严格,因此需要手动调整构建属性来解决冲突。
内容的提问来源于stack exchange,提问作者Bernhard Hiller
相关产品推荐
相关产品推荐

