手动创建App.xaml作为启动项目时,编译时提示错误:
1>------ 已启动生成: 项目: WpfApplication11, 配置: Debug Any CPU ------ 1>CSC : error CS5001: 程序“e:\RefCode\C#\.....\obj\Debug\WpfApplication11.exe”不包含适合于入口点的静态“Main”方法 ========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
看到这个问题后的第一想法就是App.xaml.cs文件里面要写Main方法吗?貌似以前的WPF项目的App.xaml.cs文件里面没有Main方法啊。于是重新新建一个WPF项目,将App.xaml和App.xaml.cs文件与现有项目自己添加的对比了一下,基本关键元素都有。没办法只能去看项目配置中哪地方可以配置启动关联。
查看了项目属性对话框中的所有标签页,貌似只有“应用程序”标签中的“启动对象”可能跟程序的启动用点关系。启动对象默认是“未设置”的。点了一下下拉框,没有发现任何下拉项。而打开前面新建的WPF项目确可以下拉看到App文件。因此猜测VS在项目文件内部对App文件作了特殊的处理。
对比一下项目配置文件:
直接新建的WPF项目:
<ApplicationDefinition Include="App.xaml"> <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> </ApplicationDefinition>
自己添加的类库转WPF项目:
<Page Include="App.xaml"> <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> </Page>
在直接新建的WPF项目里面,App.xaml在项目文件里面用ApplicationDefinition标签定义。而在后面的类库转WPF项目中,App.xaml在项目文件里面用Page标签定义,表示只是一个页面而已。因此,只需要在类库转WPF项目的项目文件中将App.xaml的配置改成ApplicationDefinition即可发现问题解决。
时间: 2024-11-10 01:58:16