1- using System . Buffers . Text ;
1+ using System . Buffers . Text ;
22using System . Collections . Concurrent ;
33using System . Reflection ;
44using System . Runtime . Loader ;
@@ -64,9 +64,41 @@ await resolver.GetMetadataReferenceAsync("System.Console.wasm"),
6464 await resolver . GetMetadataReferenceAsync ( "xunit.assert.wasm" ) ,
6565 await resolver . GetMetadataReferenceAsync ( "xunit.core.wasm" )
6666 } ;
67-
67+
68+ var isRazorProject = solution . Type == ProjectType . RazorClassLibrary ||
69+ solution . Items . Any ( i => i . Path . EndsWith ( ".razor" , StringComparison . OrdinalIgnoreCase ) ) ;
70+
71+ if ( isRazorProject )
72+ {
73+ try
74+ {
75+ references . Add ( await resolver . GetMetadataReferenceAsync ( "System.Threading.Tasks.wasm" ) ) ;
76+ references . Add ( await resolver . GetMetadataReferenceAsync ( "System.Collections.wasm" ) ) ;
77+ references . Add ( await resolver . GetMetadataReferenceAsync ( "System.Linq.wasm" ) ) ;
78+ references . Add ( await resolver . GetMetadataReferenceAsync ( "System.ObjectModel.wasm" ) ) ;
79+ references . Add ( await resolver . GetMetadataReferenceAsync ( "System.ComponentModel.wasm" ) ) ;
80+ references . Add ( await resolver . GetMetadataReferenceAsync ( "System.ComponentModel.Primitives.wasm" ) ) ;
81+ LogMessageWriter . Log ( "Added system references for Razor project" , LogSeverity . Debug ) ;
82+ }
83+ catch ( Exception ex )
84+ {
85+ LogMessageWriter . Log ( $ "Warning: Could not load system references: { ex . Message } ", LogSeverity . Warning ) ;
86+ }
87+
88+ try
89+ {
90+ references . Add ( await resolver . GetMetadataReferenceAsync ( "Microsoft.AspNetCore.Components.wasm" ) ) ;
91+ references . Add ( await resolver . GetMetadataReferenceAsync ( "Microsoft.AspNetCore.Components.Web.wasm" ) ) ;
92+ LogMessageWriter . Log ( "Added Blazor component references for Razor project" , LogSeverity . Debug ) ;
93+ }
94+ catch ( Exception ex )
95+ {
96+ LogMessageWriter . Log ( $ "Warning: Could not load Blazor references: { ex . Message } ", LogSeverity . Warning ) ;
97+ }
98+ }
99+
68100 nugetAssemblyCache = solution . NuGetReferences ?? [ ] ;
69-
101+
70102 foreach ( var nugetRef in nugetAssemblyCache )
71103 {
72104 if ( nugetRef . AssemblyData ? . Length > 0 )
@@ -76,8 +108,10 @@ await resolver.GetMetadataReferenceAsync("xunit.core.wasm")
76108 LogMessageWriter . Log ( $ "Added NuGet reference: { nugetRef . AssemblyName } ", LogSeverity . Debug ) ;
77109 }
78110 }
79-
80- var result = new CompilationService ( ) . Compile ( solution , references ) ;
111+
112+ var result = isRazorProject
113+ ? new RazorCompilationService ( ) . Compile ( solution , references )
114+ : new CompilationService ( ) . Compile ( solution , references ) ;
81115
82116 asmCache = result . Assembly ;
83117
0 commit comments