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

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

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

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

怎么了?


当前回答

其他选项:

在我使用Xamarin Forms的情况下,在“InitializeComponent”的顶部,在我的App.xaml文件中的当前上下文错误中不存在,我还注意到在输出中,.csproj文件未能构建。奇怪。

除了下面两个ItemGroup条目外,文件本身没有什么特别引人注目的:

  <ItemGroup>
    <EmbeddedResource Remove="App.xaml" />
  </ItemGroup>

  <ItemGroup>
    <ApplicationDefinition Include="App.xaml" />
  </ItemGroup>

我从.csproj文件中删除了这两个文件,执行了清理和重建,错误最终消失了。解决这个问题很痛苦,也许这将帮助其他人避免一些压力。

其他回答

在一些操作之后,.cs文件的命名空间和。xaml文件中的命名空间可能是不同的(在xaml中查找x:Class="namespace. yourtype ")。

使它们相同。

我在重命名用户控件时遇到了这个问题。我修复它的方法是注释掉InitializeComponent,验证所有名称都是正确的(xaml和后面的代码),构建项目,取消InitializeComponent的注释,然后再次构建。听起来这个问题可能有几个原因/解决方案,但这种方法对我来说很管用。

另一种可能的解释是,您正在针对x86进行构建。右键单击解决方案并选择配置管理器。看看你是否在x86而不是任何CPU上构建。

因为这似乎是关于缺少'InitializeComponent'的问题的去线程,我将在这里包括我的答案。

我也有这个问题,我已经尝试了我在这里和谷歌可以找到的所有其他论坛上找到的一切,但是没有人解决了我的问题。在尝试了两个小时之后,我终于发现我的设置出了什么问题。

在我们的项目中,我们使用了来自MahApps的Metro组件。给我带来麻烦的视图是从MetroWindow继承的视图,像这样:

<Controls:MetroWindow x:Class="ProjectNamespace.MyView"
                      xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
                      ... >

现在,我将静态资源定义为

<Controls:MetroWindow.Resources>
    <prop:Resources x:Key="LocalizedStrings"/>
    ...
</Controls:MetroWindow.Resources>

这就是我在所有其他视图中的UserControls中定义资源的方式,所以我认为这是可行的。

然而,《Controls:MetroWindow!》在那里,我绝对需要如下的资源定义:

<Controls:MetroWindow.Resources>
    <ResourceDictionary>
        <prop:Resources x:Key="LocalizedStrings"/>
        ...
    </ResourceDictionary>
</Controls:MetroWindow.Resources>

总之,我的问题是缺少<ResourceDictionary>标记。我真的不知道为什么这会产生'InitializeComponent'错误,奇怪的是,它甚至没有在我的每台机器上产生它,但这就是我如何修复它。希望这对(剩下的0.001%遇到这个问题的人)有所帮助。

我刚刚遇到了这个问题,原来是我的项目存储在我的用户文件夹中,它存储在网络上,我们有一个短暂的网络中断。我做了一个模型;它抱怨说,我的文件在编辑器之外被修改了(其实没有;文件锁刚刚被borked),它构建得很好,删除了关于InitializeComponent()方法的错误。

顺便说一句,如果你想知道,从网络驱动器开发一些东西是不好的做法。当你试图利用。net的托管代码时,这就变得特别成问题;根据我的经验,每次你建造的时候它都会崩溃。我忘了把这个一次性的小项目放在合适的文件夹里,最终付出了代价。