dotnet / vscode-csharp

Official C# support for Visual Studio Code
MIT License
2.88k stars 676 forks source link

[WPF] VSCode shows error for WPF project: "The name 'InitializeComponent' does not exist in the current context (Roslyn CS0103) #5958

Open HyVong007 opened 1 year ago

HyVong007 commented 1 year ago

1/ Install .NET Core 7.0 2/ Create WPF project with "dotnet new wpf" 3/ VSCode > Open Folder.

After awhile, VSCode shows many errors:

"The name 'InitializeComponent' does not exist in the current context" Moreover, any variables declared in .XAML file will cause error if these variables are used in .CS file Hope VSCode Dev Team will fix bugs soon, thank you very much !

heartacker commented 1 year ago

same there

JoeRobich commented 1 year ago

@HyVong007 @heartacker A couple questions to help narrow down which component might be responsible. Are you using the prerelease C# extension (2.x)? Do you also have the C# DevKit extension installed?

HyVong007 commented 1 year ago

@HyVong007 @heartacker A couple questions to help narrow down which component might be responsible. Are you using the prerelease C# extension (2.x)? Do you also have the C# DevKit extension installed?

The first time i use C# dev kit (release) and C# (release) extensions => everything works fine !

Then C# Dev Kit shows me a notification that i must upgrade C# extension to pre-release version. After that, WPF has error "InitializeComponent does not exist......"

The notification is here: image

fbiwarning commented 1 year ago

I have the same errror after upgrade the C# extension to pre-release version. After I switch the c# extension to the release version the error disappeared.

nesteg commented 1 year ago

I have the same errror with C# Dev Kit v0.4.10.

marcin-przywoski commented 1 year ago

I have the exact same issue as the person above on the same version of the Dev Kit. I had the same error on the previous versions as well though image

Cryptome2 commented 1 year ago

same issue. Any solution?

sauntheninja2 commented 1 year ago

Seeing the same error. Is there any workaround to fix this issue? Tried searching over the internet but all the answers there were related to this error occurring in Visual Studio and not Visual Studio Code.

usamachohan053 commented 1 year ago

Same issue, Is there any way to stop these suggestions in VS code, I'm get rid of these error lines.

amine-aboufirass commented 1 year ago

Same issue here. It doesn't happen in Visual Studio and compiles fine but somehow VS code throws the CS0103 error for a fresh wpf app created using dotnet new wpf

image

Kokujou commented 1 year ago

same for me. i already tried using omnisharp and preview versions and the dev toolkit, it's all the same. also no autocomplete for XAML but this might be another typic/plugin

yingjiewx commented 1 year ago

I have the same issue, the wpf project can run normally, but vscode seems to be unable to associate xaml with xaml.cs properly, which is not an issue in Visual Studio

bubuwang007 commented 1 year ago

Has anyone solved this problem? My OCD is acting up.

vwnd commented 1 year ago

I have the same.

mart1058 commented 11 months ago

Still seeing this issue with C# version v2.14.8 and C# Dev Kit v1.1.16. Everything builds and runs OK but the error is still there. Any guidance at this point?

MelDommer commented 10 months ago

I am seeing this same thing. Project builds in Visual Studio but in vscode it says InitializeCompnent() doesn't exist. (I should add this is a net472 sdk project) The C# dev kit release and pre-release show this for me.

Matt-Youlend commented 9 months ago

Still broken, it has been months.

Brentec-ca commented 9 months ago

I am also seeing the same symptoms. It affects the hot reload functionality since an error is detected. You are then forced to stop the debugger and rebuild your project. Note that these errors are not preventing the building or running of the solution from scratch. I'm experiencing this in Visual Studio 2022 with a .NET 6 WPF solution consisting of 5 projects.

To temporarily resolve the issue, this is what worked for me.

  1. close the solution
  2. close VS 2022
  3. navigate to the project folder in File Explorer and show hidden files/folders
  4. delete or rename the ".vs" folder
  5. open the solution, errors gone.

Hope this temporary fix assists, but we really do need a permanent solution.

marcin-przywoski commented 9 months ago

@Brentec-ca we're not talking about Visual Studio here but rather Visual Studio code but I know what you are talking about. When I was inserting one custom control it didn't want to build this in znak designer but cleaning .vs folder, running dotnet clean and then rebuild fixes the issue

PuR0kY commented 8 months ago

Guys, delete "obj" folder of your application. Then rebuild, this will fix that. Visual Studio fix tho.

marcin-przywoski commented 8 months ago

@PuR0kY as you may have noticed we are talking about vs code extension here. What you're mentioning in VS is a completely separate thing

PuR0kY commented 8 months ago

@marcin-przywoski Yeah surely, I just had this issue with Visual Studio too, so thought would be nice to mention here. If not. I can delete it no without any problem.

DustinLuck commented 8 months ago

I'm seeing the same issue with

The strange thing is that this isn't preventing me from running my application.

jere344 commented 7 months ago

Same here over multiple projects all working fine. A way to hide the error would be good too.

marcin-przywoski commented 5 months ago

Navigate to the g.i.cs file of the offending Page or Window, delete the g.i.cs file and rebuild solution. Or, if you're lazy, delete the obj directory inside your project directory and rebuild. This fixed it for me.

We're not talking about visual studio, we're talking about vs code

obnews commented 3 months ago

Guys, delete "obj" folder of your application. Then rebuild, this will fix that. Visual Studio fix tho.

It works on my VS, thanks.

codenotworking commented 3 months ago

I have the same issue with VS Code. As soon as I ran dotnet new wpf, open the project folder in VS Code, within MainWindows.xaml.cs I get The name 'InitializeComponent' does not exist in the current context (CS0103).

But if I perform dotnet run, it compiles properly without any errors, and the window appears.

aianlinb commented 3 months ago

To all the people suffering from this problem: I found a temporary solution that makes those errors disappear. Just add these to your .csproj file:

<ItemGroup>
    <Compile Include="obj/Debug/net8.0-windows/*.cs">
        <AutoGen>True</AutoGen>
    </Compile>
</ItemGroup>

Edit:

The path should be where the MainWindow.g.cs (or something similar) is. (Find by yourself under obj, must build the project first) And make sure your class declaration in MainWindow.xaml.cs matches the one in the generated file. (e.g. public partial class MainWindow : Window) Finally, try restarting vscode and rebuilding the solution.

(If that doesn't work, maybe you can try replacing Include with Update.)

marcin-przywoski commented 3 months ago

@aianlinb didn't work for me :/ even after I changed the path in Include to the matching one in my project

codenotworking commented 3 months ago

To all the people suffering from this problem: I found a temporary solution that makes those errors disappear. Just add these to your .csproj file:

<ItemGroup>
  <Compile Include="obj/x64/Debug/net8.0-windows/*.cs">
      <AutoGen>True</AutoGen>
  </Compile>
</ItemGroup>

Unfortunately this didn't work for me.

aianlinb commented 3 months ago

@marcin-przywoski @codenotworking I edited some messages above, maybe try it again. wish good luck

truncle commented 3 months ago

To all the people suffering from this problem: I found a temporary solution that makes those errors disappear. Just add these to your .csproj file:

<ItemGroup>
  <Compile Include="obj/Debug/net8.0-windows/*.cs">
      <AutoGen>True</AutoGen>
  </Compile>
</ItemGroup>

Edit:

The path should be where the MainWindow.g.cs (or something similar) is. (Find by yourself under obj, must build the project first) And make sure your class declaration in MainWindow.xaml.cs matches the one in the generated file. (e.g. public partial class MainWindow : Window) Finally, try restarting vscode and rebuilding the solution.

(If that doesn't work, maybe you can try replacing Include with Update.)

This works for me, it helps bro, thanks. Seems like Visual Studio does something for the generated build, but the vscode extension does not, so it should be done manually.

Matt-Youlend commented 3 months ago

Turn this on and it will be fixed. At least we now know it's the c# dev kit extension that is plaguing us.

image

JoeRobich commented 3 months ago

The DevKit tracking issue for this bug is https://github.com/microsoft/vscode-dotnettools/issues/1018

mart1058 commented 1 week ago

Turn this on and it will be fixed. At least we now know it's the c# dev kit extension that is plaguing us.

image

Finally a solution that works!