2010-07-14 38 views
1

我正在寻找一个工具,可以告诉我.NET程序集将在什么样的框架下工作。或者更具体地说,BCL(基类库)对其中的方法进行版本化。确定.NET程序集框架依赖关系的工具

是什么触发了我的: 今天我得到了一个针对我们正在制作的应用程序的错误报告,基本上这样说:“您使用的是WaitOne(Int32),但只适用于.NET 3.5 SP1,而不是纯粹的3.5;改用WaitOne(Int32,Boolean)“。用户的确是对的。 WaitOne在.NET中一直存在,但只有一个int的特定重载被引入到1.0,2.0等的服务包中。因此,我们的应用程序在例如一个普通的3.5框架安装。坦率地说,我们没有测试过。

而不是在安装了各种框架的机器上测试/加载应用程序,这并不是很容易,因此我正在寻找一种工具,可以简单地告诉我什么官方发布框架版本的方法在给定的程序集将工作在 - 或者更有趣的是,它会在什么版本而不是下工作,以及违规方法是什么。

+0

“.Net反射器”可能在这里有一些帮助,对于免费赠品它对各种事情都很有用。 – 2010-07-14 21:50:49

+0

反射器似乎没有用于这种分析的插件,但它仍然是一个很好的建议。 – 2010-07-14 22:33:57

+0

唉,废话。我只是阅读这个页面,并且一定是意外地低估了它,但是在4个小时之后,它就被锁定了。对不起。 – 2011-04-28 20:56:14

回答

0

我个人不知道任何可以分析.NET程序集的工具,并告诉您哪些方法对特定框架版本可用/不可用。

我认为你可以做的最好的是在框架的各种配置下运行代码。例如,您可以尝试使用VMWareHyper-V来创建安装了不同版本的.NET框架的虚拟机。可能值得一试。除此之外,您将不得不手动查看您的.NET代码并手动查看它,与MSDN交叉引用代码以确定某个方法是否适用于特定的框架版本。

我会对其他人的答案感兴趣 - 如果有一个工具可以分析.NET代码来确定不同版本的有效性,那么这是一个杀手级应用程序! :)

+0

我欣赏这个建议,并且实际上有很多用于测试的图片。但是为所有框架版本及其所有服务包执行此操作只需要过多的手动工作。我宁愿花时间自己写这个工具:-) – 2010-07-15 20:52:33