I'm looking for a tool that can tell me what frameworks a .NET assembly will work under. Or more specifically, what BCL (base class libraries) versions the methods within it requires.
What triggered me was this: Today I got a bug-report against an application we're making that basically said: "you're using WaitOne(Int32) but that only works for .NET 3.5 SP1, not plain 3.5; use WaitOne(Int32,Boolean) instead". And indeed the user was right. WaitOne has existed forever in .NET but the particular overload that takes only an int was introduced in service packs for 1.0, 2.0 etc. Therefore, our app would fail on e.g. a plain 3.5 framework installation. And frankly we hadn't tested for that.
Instead of testing/loading the app on machines with all kinds of frameworks installed, which is not very easy, I'm therefore looking for a tool that can simply tell me what officially released framework versions the methods in a given assembly will work under - or, more interestingly, what versions it will not work under and what the offending methods are.