The name 'InitializeComponent' does not exist in the current context

Viewed 337031

If I create a new project in Visual Studio 2010 SP1 and select "WPF Application" and tries to build the generated application, I get the error

The name 'InitializeComponent' does not exist in the current context.

I got a similar error this morning when I tried to build my current project. Yesterday, I had no problem compiling and running it.

I created a new project and got the error whenever I compiled the project. I have just sent the project to a colleague, and he has just compiled without any errors.

What is wrong?

50 Answers

Check the Designer file.

I had this same issue. In my case, the cause was that the namespace for FileName.Designer.cs did not match the (correct) namespace used in FileName.cs.

Changing the namespace of FileName.Designer.cs to match that of FileName.cs solved the problem immediately.

What helped me - is to change first line in .csproj to

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

I had the same problem in VS2017, Xamarin.Forms project. Reading this bug link:

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

To solve the problem in this case: Right-click on [xaml-file-name].xaml, choose Properties, then change the Build Action to Content then back to Embedded resource.

In my case the instance of program was already running in background. I just stop the running instance and program built successfully.

Additional option:

In my case with Xamarin Forms, on top of the 'InitializeComponent' does not exist in the current context error in my App.xaml file, I also noticed in the output that the .csproj file was failing to build. Weird.

Nothing in the file itself stood out to me except these two ItemGroup entries:

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

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

I removed both from the .csproj file, performed a clean and rebuild and the error finally disappeared. So painful resolving the issue, maybe this will help someone else avoid a bit of stress down the road.

In my case (NET Core 3.1) I fixed it by giving it an AssemblyName tag in the ProjectGroup section of the project file. e.g.

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

This also fixed a problem it was having with the compiler not seeing a control by its x:Name in the code-behind.

I had a problem similar to this in WPF. I had copied a usercontrol but had forgotten to rename the public ViewModel property in its.xaml.cs file for it. But still wasn't working. I eventually deleted all of the files inside the obj\debug type of folder for the project (we had this named differently). And rebuilt it. It still wasn't working, and I exited Visual Studio. (Before this I had at one point two instances of Visual Studio I think maybe.) The problem I had was that it was reporting it had this error when I had already fixed it! When I came back into Visual Studio (after deleting the debug stuff in obj), there finally was no error indicator. Then I rebuilt the project and now all was good!

This is not the exact order that I did things here. It needed to be simplified.

My way is close solution and delete ".vs" folder under the solution path.
(it will make you lost all of your editor status - list of opened files, window location, and error cache)

It always work.

This happended to me when I tried to build an SDK Project targeting net48. It works fine with MSBuild.exe, but dotnet build fails with the given error.

What worked for me was

  1. Add <UseWPF>true</UseWPF> to the <PropertyGroup/> node
  2. remove all <Page /> elements, as they are included automatically now.

Now msbuild as well as dotnet build work.

Here is the complete project file:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{07465991-AC74-4C22-B1DE-7BA67A040631}</ProjectGuid>
    <OutputType>library</OutputType>
    <RootNamespace>MyRootNamespace</RootNamespace>
    <AssemblyName>MyAssemblyName</AssemblyName>
    <FileAlignment>512</FileAlignment>
    <PackagesDirectory>$(UserProfile)\.nuget\packages</PackagesDirectory>
    <ResolveNuGetPackages>true</ResolveNuGetPackages>
    <SkipValidatePackageReferences>true</SkipValidatePackageReferences>
    <TargetFramework>net48</TargetFramework>
    <TargetFrameworkProfile />
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
    <IsNetCoreProject>false</IsNetCoreProject>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
    <AutoGenerateBindingRedirect>true</AutoGenerateBindingRedirect>
    <ResolveAssemblyReferencesSilent>true</ResolveAssemblyReferencesSilent>
    <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
    <UseWPF>true</UseWPF>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>embedded</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>embedded</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Xaml" />
    <Reference Include="WindowsBase" />
    <Reference Include="PresentationCore" />
    <Reference Include="PresentationFramework" />
  </ItemGroup>
</Project>

I had this error messages too after I added a new platform 'x86' to the Solution Configuration Manager. Before it had only 'Any CPU'. The solution was still running but showed multiple of these error messages in the error window.

I found the problem was that in the project properties the 'Output Path' was now pointing to "bin\x86\Debug". This was put in by Configuration Manager at the add operation. The output path of the 'Any CPU' platform was always just "bin" (because this test project was never built in release mode), so the Configuration Manager figured it should add the "\x86\Debug" by itself. There was no indication whatsoever from the error messages that the build output could be the cause and I still don't understand how the project could even run like this. After setting it to "bin" for all projects in the new 'x86' configuration all of the errors vanished.

The issue appeared while I did not change the code, using a recent VS2019 16.7.5.

Just opening for edition the corresponding XAML file solved the problem.

OK     this.InitializeComponent(); 

Wrong  this.InitializeComponent;

(Old question but if searching brings you here)

01/09/2022 - experienced the problem in visual studio community 2022.

The issue was being reported for a .xaml.cs file that had NOT changed.

The solution that worked for me today:

copied the last xaml file that I had been working on (and xaml.cs) to a folder not in the project tree.

Right click on the file in solution explorer and select 'Delete' (this removes the files)

Rebuild the project (it will have errors where it references to the file)

Copy the xaml and xaml.cs files back to the project folder

Right click on project and select 'Add/Existing Item' and pick the xaml file. Rebuild the project

(for me it build and the errors on the other xaml file had gone)

I ran into this issue when migrating .net461 projects to the new SDK-style csproj format using the migration wizard. I had to add this to my csproj:

  <PropertyGroup>
    <UseWPF>true</UseWPF>

And then remove any Page tags that were generated from the migration wizard...

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