Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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/7/symfony/6.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 CLR/Framework运行时检测_C#_.net_Frameworks_Runtime - Fatal编程技术网

C# .NET CLR/Framework运行时检测

C# .NET CLR/Framework运行时检测,c#,.net,frameworks,runtime,C#,.net,Frameworks,Runtime,是否可以在运行时确定: 应用程序的目标是.NET framework的哪个版本 如果应用程序针对的是框架的完整配置文件还是客户端配置文件 我曾尝试使用Environment.Version,但这会产生非常不准确的结果。同样,我也无法找到任何解决方案来确定使用哪种配置文件 1) 应用程序的目标是.NET framework的哪个版本 .NET程序集的目标是框架的特定版本。但正如您所知,可以将根据.NET2.0编译的程序集加载到CLR4.0中。在运行时,您可以知道用于承载具有该属性的应用程序的CLR

是否可以在运行时确定:

  • 应用程序的目标是.NET framework的哪个版本

  • 如果应用程序针对的是框架的完整配置文件还是客户端配置文件

  • 我曾尝试使用
    Environment.Version
    ,但这会产生非常不准确的结果。同样,我也无法找到任何解决方案来确定使用哪种配置文件

    1) 应用程序的目标是.NET framework的哪个版本

    .NET程序集的目标是框架的特定版本。但正如您所知,可以将根据.NET2.0编译的程序集加载到CLR4.0中。在运行时,您可以知道用于承载具有该属性的应用程序的CLR版本

    2) 如果应用程序针对的是框架的完整配置文件还是客户端配置文件


    NET配置文件不是运行时可以确定的。Visual Studio仅使用它灰显“添加引用”对话框中的某些程序集,以防止您引用运行时可能不可用的程序集。顺便提一下,这个概念在.NET 4.5中被删除。

    这是一个有趣的问题,不过我想知道为什么需要这样做。毕竟,在编译代码时,通常必须针对特定的框架和概要文件…?@stakx,我不能说这是“需要”的情况。我只是想知道这是否可能。比如说,我正在编写一个帮助器类,它将告诉您有关您的应用程序、运行在哪个操作系统上、运行在哪个CLR上、目标是哪个框架和配置文件等的信息。那么,Microsoft为什么要费心创建一个客户机配置文件呢?当然,您可以设置客户端配置文件,然后重新引用那些“灰显”的程序集?当然,最好是向VS添加功能,检查是否正在使用某个程序集,并删除那些未使用的程序集?