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

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

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

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

怎么了?


当前回答

我在VS2017 Xamarin中也遇到了同样的问题。形式的项目。阅读此错误链接:

https://bugzilla.xamarin.com/show_bug.cgi?id=33181#c53

要解决本例中的问题:右键单击[xaml-file-name]。xaml,选择属性,然后将构建操作更改为内容,然后返回为嵌入式资源。

其他回答

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

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

在我的案例中(NET Core 3.1),我通过在项目文件的ProjectGroup部分中给它一个AssemblyName标记来修复它。如。

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <UseWPF>true</UseWPF>
    <AssemblyName>ProjectNameUsually</AssemblyName>
  </PropertyGroup>
  ...
</Project>

这也修复了编译器在代码背后看不到x:Name控件的问题。

在我的情况下,我的项目中有一个错误的引用,但没有报告。

我通过阅读我所有的推荐信来解决我的问题,即使它们是正确的。

.xaml文件的构建动作也必须设置为“Page”,当在项目之间移动xaml文件时,这个设置会丢失(至少在VS 2010中是这样)。

我遇到过几次这种情况,但总是忘记是什么原因造成的。 当我在文件后面的代码上重命名命名空间时,我遇到了这个问题,但不是在XAML中。

所以检查一下你是否做了同样的事情。

名称空间和类名需要匹配,因为它们都是部分类的一部分

namespace ZZZ
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow
    {
         //...
    }
}

<!-- XAML -->
<Window x:Class="ZZZ.MainWindow">