So sometimes (oftentimes!) you want to target a specific .NET version (say 3.0), but then due to some .NET service packs you get into problems like:
Dispatcher.BeginInvoke(Delegate, Object[])
<-- this was added in 3.0 SP2 (3.0.30618 )System.Threading.WaitHandle.WaitOne(Int32)
<-- this was added in 3.5 SP1, 3.0 SP2, 2.0 SP2
Now, these are detected by the JIT compiler, so building against .NET 3.0 in Visual Studio won't guarante it will run on .NET 3.0 only systems.
Short of
- confirming each and every function you use, or
- limiting your development environment to .NET 3.0 (which sucks since you have to develop for other projects too)
what's the best way to avoid against using extensions?
Thanks!