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?
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>