c# 不包含“InitializeComponent”的定义,并且名称“controlName”在当前上下文中不存在

问题描述 投票:0回答:4

自六月以来,我一直在团队中开发 Windows Phone 应用程序。直到今天,所有同步一切正常。 我同步了项目,vs 开始给我错误

  • “WindowsPhoneApp.MainPage”不包含 InitializeComponent 的定义(以及所有其他页面,甚至 App)
  • 名称“controlName”在当前上下文中不存在(这种情况发生在所有页面中)

我没有改变任何东西,昨天运行得很好。 XAML 上的类名称与代码隐藏中的名称相匹配。
我尝试退出所有 vs 实例,但问题仍然存在。

c# visual-studio-2013 windows-phone-8.1
4个回答
18
投票

对我来说,问题如下:


项目结构

Project\Views\Page1.xaml
Project\Views\Page1.xaml.cs

上述页面构造函数

Page1.xaml.cs
中的错误:

public sealed partial class Page1 : Page
{
    public Page1()
    {
        this.InitializeComponent();
    }
}

Xaml 文件

<Page
    x:Class="App1.Page1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

应该是

x:Class="App1.Views.Page1"

所以只是类名写错了。


2
投票

关闭解决方案,删除与解决方案关联的.suo文件,删除所有项目中的“bin”和“obj”文件夹。然后在VS中重新打开解决方案并重建解决方案。

“suo”文件是一个隐藏文件,因此您可能需要进入资源管理器的菜单/查看,然后选中“隐藏项目”选项。在 VS2013 中,它与 .sln 文件位于同一文件夹中,在较新的版本中,它位于(隐藏的).vs 文件夹中。


0
投票

对我来说,问题是应用程序在后台运行。

任务栏中没有应用程序窗口或图标。即使 Visual Studio 关闭,应用程序实例仍然存在,导致我无法手动清除解决方案中的

/bin
/obj
,因为 Windows 抛出“当前正在使用的文件”异常。

解决办法是

  • 使用任务管理器终止应用程序 (
    CTRL
    +
    SHIFT
    +
    ESC
    )
  • 清洁溶液
  • 重建应用程序

重启系统也可以了。


0
投票

迟到的答案,但这就是我为解决问题所做的事情。

  1. 关闭 Visual Studio。
  2. 导航到解决方案的顶级目录。
  3. 删除整个 .vs 文件夹。它是一个隐藏文件夹,因此在您启用隐藏文件夹可见之前,您可能无法在文件资源管理器中看到它。
  4. 使用文件资源管理器,删除解决方案的每个项目中的每个 binobj 文件夹。如果您有顶级 bin 文件夹,也将其删除。
  5. 在 Visual Studio 中重新打开解决方案。
  6. 重建解决方案。
© www.soinside.com 2019 - 2024. All rights reserved.