我正在寻找一种可以告诉我.NET程序集将在哪些框架下工作的工具。或者更具体地说,BCL(基类库)对其中的方法进行版本化需要。
引发我的是: 今天我得到了一个针对我们正在制作的应用程序的错误报告,基本上说:“你正在使用WaitOne(Int32),但这只适用于.NET 3.5 SP1,而不是3.5;使用WaitOne(Int32,布尔)代替” 。事实上,用户是对的。 WaitOne已经永远存在于.NET中,但是在1.0,2.0等服务包中引入了仅占用int的特定重载。因此,我们的应用程序将失败,例如一个普通的3.5框架安装。坦率地说,我们没有对此进行测试。
而不是在安装了各种框架的机器上测试/加载应用程序,这不是很容易,我正在寻找一个工具,可以简单地告诉我正式发布的框架版本,给定程序集中的方法将工作在 - 或者更有趣的是,它将不工作的版本以及违规方法是什么。
答案 0 :(得分:0)
我个人不知道任何可以分析.NET程序集的工具,并告诉您特定框架版本可用/不可用的方法。
我认为您可以做的最好的事情是在框架的各种配置下运行代码。例如,您可以尝试使用VMWare
或Hyper-V
来创建安装了不同版本.NET框架的虚拟机。可能值得一试。
除此之外,您必须手动查看.NET代码并手动查看,与MSDN交叉引用代码,以确定方法是否对特定框架版本有效。
我对其他人的答案感兴趣 - 如果有一个工具可以分析.NET代码以确定不同版本的有效性,那么这是一个杀手级的应用程序! :)