Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to return all aspnet_compiler errors (not just those in first directory)

Is there a way to get the aspnet_compiler to go through all views and return all errors, rather than just the errors in the current view directory?

For example, lets say I have a project that has a bunch of folders...

  • Views
    • Folder1
    • Folder2
    • Folder3
    • Folder4

Two of them (Folder2 and Folder3) have errors. aspnet_compiler will run, and only return the errors it comes across in Folder2. It won't return those in Folder3 at the same time. Once I fix the errors in Folder2 and run it again, it'll then pick up the ones in the Folder3. I fix those. And then have to run the tool again, and again until it's all fixed.

This is getting annoying!!

For reference, here's the command I use:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler -v / -p "C:\path\to\project"

Thanks in advance!

like image 343
Dan Atkinson Avatar asked May 26 '10 15:05

Dan Atkinson


1 Answers

11 years later, I grew tired of re-running aspnet_compiler myself and came up with one weird trick...

  • Write a simple .exe (or Linqpad project) that loads aspnet_compiler.exe into your process.
  • Set-up an event-handler to AppDomain.FirstChanceException to be notified of all HttpCompileException instances.
    • These are caught by aspnet_compiler's Main() method, which fails at the first try.
    • Save the filename that caused the HttpCompileException in a HashSet.
  • Then run aspnet_compiler's Main method.
  • If an HttpCompileException is thrown, then your program has the name of the file that failed, so then add that file to the -x compiler exclusion-list and re-run aspnet_compiler's Main method again.
  • And loop until it completes with no errors - and you'll have a list of all files with blocking errors.

(I'm still tidying-up my Linqpad program that does this, I'll post it to this answer shortly). I wonder if @DanAtkinson can still use it...

like image 164
Dai Avatar answered Sep 30 '22 18:09

Dai