检查运行我的代码需要什么版本的 .NET
我正在用 C# 编写代码库,并且遇到了测试 PC 未安装正确的 .NET 3.5 服务包来运行代码的问题(与此处发生的问题相同:仅在我的计算机上发生异常:未找到方法:WaitHandle.WaitOne(Int32)< /a>)。我想知道是否有一个静态代码分析工具可以在我的代码中运行,它可以告诉我每个单独模块(或程序集)所需的 .NET 最低版本。
谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
项目属性->应用程序->目标框架。
Project properties->Application->Target framework.
我不知道有任何静态分析工具,但根据 MSDN 文档和一些博客文章,我发现了以下内容:
System.Data .Entity.dll
或使用 ClickOnce - .NET 3.5 SP1System.Data.Entity.dll
并且不使用 ClickOnce - .NET 3.5 RTM注意:
我相信 .NET 3.5 SP1 是唯一添加了重要功能的服务包,因此它是唯一会导致
MissingMethodException
问题的服务包。例如,这意味着 3.0 RTM、3.0 SP1 和 3.0 SP2 具有相同的公共 API。我还没有找到对此的明确确认,但“.NET 中的新增功能”文档仅涵盖 2.0/3.5/3.5SP1/4.0,因此这是一个合乎逻辑的结论。VS 2008 SP1 对于“.NET Framework 3.5”有一些奇怪的规则(仅在实际使用时才尝试以 SP1 为目标),但 VS2010 仅支持以 .NET 3.5 SP1 为目标。
来源:
I am not aware of any static analysis tool, but here's what I've found, based on MSDN docs and a few blog posts:
System.Data.Entity.dll
or using ClickOnce - .NET 3.5 SP1System.Data.Entity.dll
and not using ClickOnce - .NET 3.5 RTMNotes:
I believe .NET 3.5 SP1 is the only service pack that added significant functionality, so it's the only one that will cause
MissingMethodException
problems. For example, this would mean that 3.0 RTM, 3.0 SP1, and 3.0 SP2 have the same public API. I haven't found explicit confirmation of this, but the "what's new in .NET" documentation only covers 2.0/3.5/3.5SP1/4.0, so this is a logical conclusion.VS 2008 SP1 has some weird rules regarding ".NET Framework 3.5" (trying to target SP1 only if it's actually used), but VS2010 just supports targeting .NET 3.5 SP1.
Sources: