Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查运行我的代码所需的.NET版本_C#_.net_Missingmethodexception - Fatal编程技术网

C# 检查运行我的代码所需的.NET版本

C# 检查运行我的代码所需的.NET版本,c#,.net,missingmethodexception,C#,.net,Missingmethodexception,我正在用C#编写一个代码库,在测试PC没有安装正确的.NET 3.5 service pack来运行代码时遇到了问题(与此处发生的问题相同:)。我想知道是否有一个静态代码分析工具可以在我的代码中运行,它可以告诉我每个模块(或程序集)所需的.NET的最低版本 谢谢。项目属性->应用程序->目标框架。项目属性->应用程序->目标框架。我不知道有任何静态分析工具,但根据MSDN文档和一些博客文章,我发现了以下内容: VS 2008/VS 2008 SP1+/VS 2010“.NET Framewor

我正在用C#编写一个代码库,在测试PC没有安装正确的.NET 3.5 service pack来运行代码时遇到了问题(与此处发生的问题相同:)。我想知道是否有一个静态代码分析工具可以在我的代码中运行,它可以告诉我每个模块(或程序集)所需的.NET的最低版本


谢谢。

项目属性->应用程序->目标框架。

项目属性->应用程序->目标框架。

我不知道有任何静态分析工具,但根据MSDN文档和一些博客文章,我发现了以下内容:

  • VS 2008/VS 2008 SP1+/VS 2010“.NET Framework 2.0”-.NET 2.0 RTM
  • VS 2008/VS 2008 SP1+/VS 2010“.NET Framework 3.0”-.NET 3.0 RTM
  • VS 2008“.NETFramework 3.5”-.NET3.5RTM
  • VS 2008 SP1+“.NET Framework 3.5”,其中引用了
    System.Data.Entity.dll
    或使用ClickOnce-.NET 3.5 SP1
  • VS 2008 SP1+“.NET Framework 3.5”,未引用
    System.Data.Entity.dll
    ,也未使用ClickOnce-.NET 3.5 RTM
  • VS 2010“.NETFramework 3.5”-.NET3.5SP1
  • VS 2008 SP1+“.NET Framework客户端配置文件”-.NET 3.5 SP1(客户端)
  • VS 2010“.NET Framework 3.5客户端配置文件”-.NET 3.5 SP1(客户端)
  • VS 2010“.NET Framework 4.0”-.NET 4.0 RTM
  • VS 2010“.NET Framework 4.0客户端配置文件”-.NET 4.0 RTM(客户端)
注:

  • VS 2008随.NET3.5RTM提供;VS2008SP1随.NET3.5SP1一起提供;VS 2010随.NET 4.0 RTM一起提供
  • VS 2010无法针对早期版本,除非单独安装
  • 客户端配置文件是在.NET3.5SP1中引入的
  • VS2010是第一个具有可扩展多目标功能的版本(因此,从理论上讲,它将能够在没有VS更新的情况下针对未来的.NET版本)
我相信.NET 3.5 SP1是唯一添加了重要功能的服务包,因此它是唯一会导致
MissingMethodException
问题的服务包。例如,这意味着3.0RTM、3.0SP1和3.0SP2具有相同的公共API。我还没有发现对这一点的明确确认,但是“在.NET中有什么新功能”文档只涉及2.0/3.5/3.5SP1/4.0,所以这是一个合乎逻辑的结论

VS2008SP1有一些关于“.NETFramework3.5”的奇怪规则(只有在实际使用时才尝试将SP1作为目标),但VS2010只支持将.NET3.5SP1作为目标

资料来源:


我不知道有任何静态分析工具,但根据MSDN文档和一些博客文章,我发现了以下内容:

  • VS 2008/VS 2008 SP1+/VS 2010“.NET Framework 2.0”-.NET 2.0 RTM
  • VS 2008/VS 2008 SP1+/VS 2010“.NET Framework 3.0”-.NET 3.0 RTM
  • VS 2008“.NETFramework 3.5”-.NET3.5RTM
  • VS 2008 SP1+“.NET Framework 3.5”,其中引用了
    System.Data.Entity.dll
    或使用ClickOnce-.NET 3.5 SP1
  • VS 2008 SP1+“.NET Framework 3.5”,未引用
    System.Data.Entity.dll
    ,也未使用ClickOnce-.NET 3.5 RTM
  • VS 2010“.NETFramework 3.5”-.NET3.5SP1
  • VS 2008 SP1+“.NET Framework客户端配置文件”-.NET 3.5 SP1(客户端)
  • VS 2010“.NET Framework 3.5客户端配置文件”-.NET 3.5 SP1(客户端)
  • VS 2010“.NET Framework 4.0”-.NET 4.0 RTM
  • VS 2010“.NET Framework 4.0客户端配置文件”-.NET 4.0 RTM(客户端)
注:

  • VS 2008随.NET3.5RTM提供;VS2008SP1随.NET3.5SP1一起提供;VS 2010随.NET 4.0 RTM一起提供
  • VS 2010无法针对早期版本,除非单独安装
  • 客户端配置文件是在.NET3.5SP1中引入的
  • VS2010是第一个具有可扩展多目标功能的版本(因此,从理论上讲,它将能够在没有VS更新的情况下针对未来的.NET版本)
我相信.NET 3.5 SP1是唯一添加了重要功能的服务包,因此它是唯一会导致
MissingMethodException
问题的服务包。例如,这意味着3.0RTM、3.0SP1和3.0SP2具有相同的公共API。我还没有发现对这一点的明确确认,但是“在.NET中有什么新功能”文档只涉及2.0/3.5/3.5SP1/4.0,所以这是一个合乎逻辑的结论

VS2008SP1有一些关于“.NETFramework3.5”的奇怪规则(只有在实际使用时才尝试将SP1作为目标),但VS2010只支持将.NET3.5SP1作为目标

资料来源:


这更多的是关于检查一段代码需要哪个版本的服务包,这些服务包不能作为目标,但不会在编译时进行静态兼容性检查,而是在运行时由于MissingMethodException而失败…这更多的是关于检查一段代码对于服务包所需的版本,这些服务包不能作为目标,但在编译时不会静态检查兼容性,而是在运行时由于MissingMethodException而失败。。。