【问题标题】:Tool to determine .NET assembly framework dependencies确定 .NET 程序集框架依赖项的工具
【发布时间】:2011-03-16 02:44:33
【问题描述】:

我正在寻找一种工具,它可以告诉我 .NET 程序集将在哪些框架下工作。或者更具体地说,其中的方法需要哪些 BCL(基类库)版本。

让我兴奋的是: 今天我收到了一个针对我们正在制作的应用程序的错误报告,它基本上说:“您使用的是 WaitOne(Int32),但这仅适用于 .NET 3.5 SP1,不适用于普通 3.5;请改用 WaitOne(Int32,Boolean)” .确实,用户是对的。 WaitOne 在 .NET 中一直存在,但是在 1.0、2.0 等的服务包中引入了只需要一个 int 的特定重载。因此,我们的应用程序将在例如一个简单的 3.5 框架安装。坦率地说,我们还没有对此进行测试。

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

【问题讨论】:

  • ".Net Reflector" 在这里可能会有所帮助,作为免费赠品,它对各种事物都有用。
  • Reflector 似乎没有用于这种分析的插件,但它仍然是一个非常好的建议。
  • 噢,废话。我刚刚阅读此页面,一定是不小心投了反对票,但 4 小时后,它被锁定了。抱歉。
  • @Marc 没有难过的感觉。当我看到反对票时,我很困惑,但我很高兴这只是一个错误。

标签: .net frameworks compatibility portability base-class-library


【解决方案1】:

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

我认为你能做的最好的就是在框架的各种配置下运行代码。例如,您可以尝试使用VMWare 或Hyper-V 创建安装了不同版本的.NET 框架的虚拟机。可能值得一试。

除此之外,您将不得不手动查看您的 .NET 代码并手动查看它,使用 MSDN 交叉引用代码以确定方法是否对特定框架版本有效。

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

【讨论】:

  • 我很欣赏这个建议,并且实际上有许多图像用于测试东西。但是为所有框架版本及其所有服务包执行此操作实在是太多的手动工作。我宁愿花时间自己编写工具:-)
猜你喜欢
  • 2010-09-05
  • 1970-01-01
  • 2012-03-04
  • 1970-01-01
  • 2018-02-10
  • 1970-01-01
  • 1970-01-01
  • 2014-04-25
  • 2012-12-21
相关资源
最近更新 更多