WPF编译时提示“...不包含适合于入口点的静态‘Main’方法 ...”

生成的时候一直报“...不包含适合于入口点的静态‘Main’方法 ...”

  看到这个问题后的第一想法就是App.xaml.cs文件里面要写Main方法吗?貌似以前的WPF项目的App.xaml.cs文件里面没有Main方法啊。于是重新新建一个WPF项目,拿App.xaml和App.xaml.cs文件与现有项目自己添加的对比了一下,基本关键元素都有。没办法只能去看项目配置中哪地方可以配置启动关联。

  查看了项目属性对话框中的所有标签页,貌似只有“应用程序”标签中的“启动对象”可能跟程序的启动用点关系。启动对象默认是“未设置”的。点了一下下拉框,没有发现任何下拉项。而打开前面新建的WPF项目确可以下拉看到App文件。因此猜测VS在项目文件内部对App文件作了特殊的处理。

  用记事本打开项目文件(*.csproj),搜索App.xaml。可以发现项目文件对于App.xaml文件的不同的定义方式。区别如下:

  直接新建的WPF项目:

<ApplicationDefinition Include="App.xaml">

      <Generator>MSBuild:Compile</Generator>

      <SubType>Designer</SubType>

    </ApplicationDefinition>

类库转WPF项目:

     <Page Include="App.xaml">

      <SubType>Designer</SubType>

      <Generator>MSBuild:Compile</Generator>

    </Page>

  在直接新建的WPF项目里面,App.xaml在项目文件里面用ApplicationDefinition标签定义。而在后面的类库转WPF项目中,App.xaml在项目文件里面用Page标签定义,表示只是一个页面而已。

  因此,只需要在类库转WPF项目的项目文件中将App.xaml的配置改成ApplicationDefinition即可发现问题解决。

原文地址:https://www.cnblogs.com/something/p/3355220.html