@@ -132,27 +132,36 @@ public DependencyManager(string srcDir, IDependencyOptions options, ILogger logg
132
132
progressMonitor . UnresolvedReference ( r . Key , r . Value ) ;
133
133
}
134
134
135
- var views = GetFiles ( "*.cshtml" )
136
- . Concat ( GetFiles ( "*.razor" ) ) ;
137
-
138
- if ( views . Any ( ) )
135
+ var webViewExtractionOption = Environment . GetEnvironmentVariable ( "CODEQL_EXTRACTOR_CSHARP_STANDALONE_EXTRACT_WEB_VIEWS" ) ;
136
+ if ( bool . TryParse ( webViewExtractionOption , out var shouldExtractWebViews ) &&
137
+ shouldExtractWebViews )
139
138
{
140
- // TODO: use SDK specified in global.json
141
- // TODO: add feature flag to control razor generation
142
- var sdk = new Sdk ( dotnet ) . GetNewestSdk ( ) ;
143
- if ( sdk != null )
139
+ progressMonitor . LogInfo ( $ "Generating source files from cshtml and razor files.") ;
140
+
141
+ var views = GetFiles ( "*.cshtml" )
142
+ . Concat ( GetFiles ( "*.razor" ) )
143
+ . ToArray ( ) ;
144
+
145
+ if ( views . Length > 0 )
144
146
{
145
- try
146
- {
147
- var razor = new Razor ( sdk , dotnet , progressMonitor ) ;
148
- razorWorkingDirectory = new TemporaryDirectory ( ComputeTempDirectory ( sourceDir . FullName , "razor" ) ) ;
149
- var generatedFiles = razor . GenerateFiles ( views , usedReferences . Keys , razorWorkingDirectory . ToString ( ) ) ;
150
- this . allSources . AddRange ( generatedFiles ) ;
151
- }
152
- catch ( Exception ex )
147
+ progressMonitor . LogInfo ( $ "Found { views . Length } cshtml and razor files.") ;
148
+
149
+ // TODO: use SDK specified in global.json
150
+ var sdk = new Sdk ( dotnet ) . GetNewestSdk ( ) ;
151
+ if ( sdk != null )
153
152
{
154
- // It's okay, we tried our best to generate source files from cshtml files.
155
- progressMonitor . LogInfo ( $ "Failed to generate source files from cshtml files: { ex . Message } ") ;
153
+ try
154
+ {
155
+ var razor = new Razor ( sdk , dotnet , progressMonitor ) ;
156
+ razorWorkingDirectory = new TemporaryDirectory ( ComputeTempDirectory ( sourceDir . FullName , "razor" ) ) ;
157
+ var generatedFiles = razor . GenerateFiles ( views , usedReferences . Keys , razorWorkingDirectory . ToString ( ) ) ;
158
+ this . allSources . AddRange ( generatedFiles ) ;
159
+ }
160
+ catch ( Exception ex )
161
+ {
162
+ // It's okay, we tried our best to generate source files from cshtml files.
163
+ progressMonitor . LogInfo ( $ "Failed to generate source files from cshtml files: { ex . Message } ") ;
164
+ }
156
165
}
157
166
}
158
167
}
0 commit comments