Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to see c# code compiled from Razor component with VS2022 in project targeting .Net6?

I have a component and I want to see generated by RazorSourceGenerator *_razor.g.cs file.

Previously with VS2019 and .Net5 I could open the "\obj\Debug\net5.0\Razor\Pages" folder and found the generated files there.

Now, If I have some compillation error in *.razor component I can see a error message with refers to the "\Microsoft.NET.Sdk.Razor.SourceGenerators\Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator" folder but there is no such folder. It seems it is deleted after the project has build.

Is there way to preserve this folder to see the *.razor file compillation result?

like image 470
Eugene Maksimov Avatar asked Feb 02 '26 16:02

Eugene Maksimov


1 Answers

Thank you Mister Maggo for pointing to the article. Let me post full answer.

To preserve generated *_razor.g.cs files set the EmitCompilerGeneratedFiles property in the project file. But in this case you will not be able to see generated code by double clicking on error in Output or Error List window because files will be saved into

obj\Debug\generated\Microsoft.NET.Sdk.Razor.SourceGenerators\Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator

forlder. But the error will refer to

Microsoft.NET.Sdk.Razor.SourceGenerators\Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator\

folder. So you need to specify that files should be preserved in this folder by setting the CompilerGeneratedFilesOutputPath property.

So, the short anser is to add this into your project file in the project section:

  <PropertyGroup>
    <EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
    <CompilerGeneratedFilesOutputPath>.</CompilerGeneratedFilesOutputPath>
  </PropertyGroup>
like image 102
Eugene Maksimov Avatar answered Feb 05 '26 06:02

Eugene Maksimov



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!