如果我在Visual Studio 2010 SP1中创建一个新项目,并选择“WPF应用程序”,并尝试构建生成的应用程序,我会得到错误

名称“InitializeComponent”在当前上下文中不存在。

今天早上,当我试图构建当前项目时,我遇到了类似的错误。昨天,我编译和运行它没有问题。

我创建了一个新项目,每当我编译项目时,都会得到错误。我刚刚把项目发给了同事,他刚刚编译完成,没有任何错误。

怎么了?


当前回答

当您从另一个项目导入类,或更改xaml文件的路径,或xaml或.cs文件后面的名称空间时,可能会出现此错误。

第一:它的名称空间可能与新项目中的名称空间不相同

namespace TrainerB.MVC.Forms
{
     public partial class AboutDeveloper : ContentPage
     {
          public AboutDeveloper()
          {
               InitializeComponent();
          }
     }
}

正如您所看到的,导入文件中的名称空间以旧的项目名称开始:“TrainerB”,但您的新项目可能有不同的名称,所以只需在.xaml文件和后面的.cs文件中将其更改为正确的新项目名称。

Two:

将.xaml文件的属性更改为:

构建动作:嵌入式资源

自定义工具:MSBuild:UpdateDesignTimeXaml

其他回答

如果命名空间是正确的,那么也有一个相同的错误,

只需关闭应用程序并重新打开。

这也许能解决你的问题

我也有同样的问题,我必须把我的共享项目转换成一个可移植的类库。

检查设计器文件。

我也有同样的问题。在我的例子中,原因是FileName.Designer.cs的名称空间与FileName.cs中使用的(正确的)名称空间不匹配。

更改FileName.Designer.cs的命名空间以匹配FileName.cs立即解决了这个问题。

我在使用迁移向导将。net461项目迁移到新的sdk风格的csproj格式时遇到了这个问题。我必须把这个添加到我的csproj:

  <PropertyGroup>
    <UseWPF>true</UseWPF>

然后删除从迁移向导生成的任何Page标记……

<Page Include="Views\MyCustomControl.xaml">
  <Generator>MSBuild:Compile</Generator>
  <SubType>Designer</SubType>
</Page>

我有同样的问题,期望我把我的主窗口xaml和cs复制到一个新文件,然后把它们复制回原来的地方。在尝试编译WPF应用程序后,我得到了这个错误。

我修复这个错误的方法是重命名命名空间(from egNamespace -> egNamespaceNew),它再次工作。然后我将名称空间改回原来的名称空间。