I came across an issue that makes me think there is bug in the 3.0 framework. When I try to use extension methods I get the following error:
Missing compile
I just ran into this problem myself. In my case, it was because I converted a VS 2005/.Net 2.0 project to a VS 2008/.Net 3.5 project. The conversion tool kept references to System.Core 2.0, and I couldn't find an easy way to change the references to System.Core 3.5.
I ended up re-creating the project in VS 2008 from scratch, and it was created with proper references to System.Core 3.5
I have the exact same problem. The error System.Runtime.CompilerServices.ExtensionAttribute..ctor is rather cryptic, and could mean a number of different things.
However, for me It boiled down to the fact that I'm using Newtonsoft.Json.Net. I removed the reference to the file Newtonsoft.Json.Net20.dll, and the re-added it. After this my solution builds again.
The strangest thing is that when I tried to find out what was different after this procedure by using Subversion Diff, nothing appears to have changed.
So I really don't know what removing and re-adding this reference really does, but it does fix my build issue with this particular error message mentioned by the asker.
For those that come across this again, as the comenters pointed out, the proper way to fix this is to Download Json.Net's ZIP, and there should be a 3.5 version, re-reference 3.5 every where you are using Json.Net and delete the old reference, as it is likely referencing an assembly that was built for older versions of .net.
Charlie Flowers points out that the DLL NewtonSoft labels as being for 3.5 is actually not going to work with 3.5. You have to use the DLL they label as being for .net 2.0
I had a version of Elmah.Sandbox that was targetting .net 2.0 in an existing .Net 4.0 project. I added an extension method to my project and the build failed with the "Missing compiler required member" error message.
The Elmah.Sandbox dll was included as part of an early version of ElmahR. Once this was removed, it all built again.
In my case the reason was the wrong NET20 version of Microsoft's AntiXSSLibrary.dll. Replaced with NET35 - the error is gone.