首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在运行时获取当前的.NET CLR版本?

在运行时获取当前的 .NET CLR 版本,可以通过以下代码实现:

代码语言:csharp
复制
using System;
using System.Reflection;

class Program
{
    static void Main()
    {
        Assembly assembly = Assembly.GetExecutingAssembly();
        AssemblyName assemblyName = assembly.GetName();
        Version version = assemblyName.Version;

        Console.WriteLine("当前的 .NET CLR 版本为:" + version);
    }
}

这段代码将获取当前程序集的名称,并从中提取出版本号,即为当前的 .NET CLR 版本。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在代码中获取Java应用当前版本号?

最近需要在项目中获取项目的版本号,最笨方法莫过于硬编码一个版本号,当然我也是这么干。不过闲下来时候突发奇想Spring Boot项目中pom.xml定义版本号能不能通过API获得呢?...Created-By: Maven Jar Plugin 3.2.0 Main-Class: org.springframework.boot.loader.JarLauncher 里面包含了我定义版本号...version = this.getClass().getPackage().getImplementationVersion() 但是用IDE启动发现version=null,不过用java -jar运行时...Spring Boot提供 Spring Boot其实已经内置了获取项目构建信息自动配置ProjectInfoAutoConfiguration,它包含一个条件BeanBuildProperties:...spring-boot-version", "time" : { "epochSecond" : 1620664643, "nano" : 591000000 } } 总结 今天介绍了几种从通过API获取项目构建版本信息方法

3.1K20

如何在代码中获取Java应用当前版本号?

最近需要在项目中获取项目的版本号,最笨方法莫过于硬编码一个版本号,当然我也是这么干。不过闲下来时候突发奇想Spring Boot项目中pom.xml定义版本号能不能通过API获得呢?...Created-By: Maven Jar Plugin 3.2.0 Main-Class: org.springframework.boot.loader.JarLauncher 里面包含了我定义版本号...version = this.getClass().getPackage().getImplementationVersion() 但是用IDE启动发现version=null,不过用java -jar运行时...Spring Boot提供 Spring Boot其实已经内置了获取项目构建信息自动配置ProjectInfoAutoConfiguration,它包含一个条件BeanBuildProperties:...spring-boot-version", "time" : { "epochSecond" : 1620664643, "nano" : 591000000 } } 总结 今天介绍了几种从通过API获取项目构建版本信息方法

5.7K20

简单介绍.NET

这些应用程序在运行时都依赖于下一层**Common Language Runtime (CLR)**。CLR是运行所有.NET代码环境。...语言互通性:由于所有.NET语言都编译到统一IL,因此不同语言编写代码可以轻松地进行交互。 优化:在运行时CLRJIT编译器可以根据目标计算机具体硬件进行优化,以提高应用程序性能。...这与JIT(Just-In-Time)编译形成对比,后者在运行时将程序部分或全部转换为机器代码。...1.7 C#语言历史 如果是中途转语言到C#或者C#小白从0开始学习会有点疑惑,我当前使用是什么版本语法更或者说一切有强迫症小伙伴总觉得不是从这个语言诞生之初了解到现在一共出了哪些新特性就感觉差点什么的话看下面官方地址可以缓解这个症状....NET 5 .NET 5 是 .NET Core 后续版本,它将 .NET Framework 和 .NET Core 合并为一个统一平台。.

25330

Donut - 将 .NET 程序集作为 Shellcode 注入

公共语言运行时:与 Java 一样,.NET 使用运行时环境(或“虚拟机”)在运行时解释代码。所有 .NET 代码在执行前都从一种中间语言编译为“即时”本机代码。...但是您不能只将 .NET 程序集转换为 shellcode。它们在运行时环境中运行,而不是直接在硬件上运行。如果我们可以将 .NET 程序集作为 shellcode 注入,那不是很好吗?是的。...除非用户指定要使用的确切运行时版本,否则将默认使用 v4.0.30319 CLR,它支持 .NET 4.0+ 版本。如果尝试加载特定版本失败,则 donut 将尝试使用系统上可用版本。...一旦加载了 CLR,shellcode 就会创建一个新应用程序域。此时,必须获取 .NET 程序集有效负载。如果用户提供了暂存 URL,则会从中下载程序集。否则,它是从内存中获取。...v2 适用于 .NET Framework = 4.0 版本。默认情况下,donut 使用 CLR 版本 4。

1.8K00

.NET Glossary

公共语言运行时通常是指.NET Framework行时或.NET 5(和 .NET Core)及更高版本行时CLR 处理内存分配和管理。...最初,Core CLR 是 Silverlight 行时,旨在运行在多个平台上,特别是 Windows 和 OS X。它仍然是一个跨平台行时,现在包括对许多 Linux 发行版支持。...另请参见运行时。 核心CLR .NET 5(和 .NET Core)及更高版本公共语言运行时。 请参阅CLR。...它支持所有当前发布 .NET Standard 版本。 从历史上看,Mono 实现了 .NET Framework 更大 API,并在 Unix 上模拟了一些最流行功能。...NET Framework 的当前版本是 4.8。 请参阅.NET 文档。 .NET 命令行界面 用于为.NET 5(和 .NET Core)及更高版本开发应用程序和库跨平台工具链。

74110

UnmanagedPowerShell工具分析

machines with E_NOTIMPL wprintf(L"CLRCreateInstance failed w/hr 0x%08lx\n", hr); goto Cleanup; } //获取与特定版本公共语言运行时...BOOL loadable; //指示与此接口关联行时是否可以加载到当前进程中,考虑到可能已加载到进程其他运行时。...the current process and return a runtime interface // 将CLR加载到当前进程并返回运行时接口 hr = pRuntimeInfo->GetInterface...CLR 版本描述字符串,.NET Framework 中版本号用句点分隔四个部分组成:major.minor.build.revision。...将字符串作为传递pwszVersion必须以字符"v"跟版本号 (例如,"v1.0.1529") 前三个部分开头,如果调用方指定为 null pwszVersion,加载行时最新版本

2.4K10

.net 5+ 知新:【1】 .Net 5 基本概念和开发环境搭建

因为以后不叫.net core统一叫.net x, 所以就从当前稳定版本.net 5 开始吧,反正.net 6 还没正式发布而且也不会对体系进行大改,说不定搞着搞着就到6了,所以标题写成.net 5+。...用于运行依赖于框架应用 CLI 命令。 这里要注意[运行时]和[.NET行时],运行时就是上面包含那些东西,.NET行时包含在运行时里面。....Net行时也就是那个CLR,运行时库就是基类库 (BCL),这些名字确实挺迷惑,也许我们平时说.net行时≈运行时,但是在理解概念时候要搞清楚。....NET CLR 是包含 Windows、macOS 和 Linux 支持跨平台运行时CLR 处理内存分配和管理。...例如如下一行代码命令就是CLI 帮我们干事,在当前目录下创建 C# 控制台应用程序项目: dotnet new console 简单点说就是SDK可以让我们开发程序,运行时让我们可以运行写好程序,当然安装了

79430

CLR程序集加载

CLR程序集加载       本次来讨论一下基于.net平台CLR程序集加载机制:   【注:由于.net已经开源,可利用vs2015查看c#源码具体实现】 在运行时,JIT编译器利用程序集...-或 -当前加载是 2.0 或更高版本公共语言运行时,而 是用更高版本公共语言运行时编译。...- 或 -当前加载是 2.0 或更高版本公共语言运行时,而 是用更高版本公共语言运行时编译。...- 或 -当前加载是 2.0 或更高版本公共语言运行时,而 是用更高版本公共语言运行时编译。...- 或 -当前加载是 2.0 或更高版本公共语言运行时,而 是用更高版本公共语言运行时编译

98380

CLR via C#》笔记:第4部分 核心机制(3)

CLR寄宿 .NET Framework在 Windows平台顶部运行。这意味着.NET Framework必须用Windows能理解技术来构建。...第二十三章 程序集加载和反射 本章讨论了在编译时对一个类型一无所知情况下,如何在运行时发现类型信息、创建类型实例以及访问类型成员。可利用本章讲述内容创建动态可扩展应用程序。...宿主不能基于一些具体加载项来构建和测试,因为加载项由不同公司创建,而且极有可能是在宿主应用程序发布之后才创建。这是宿主为什么要在运行时发现加载项原因。...在运行时,JIT编译器利用程序集TypeRef和AssemblyRef元数据表来确定哪一个程序集定义了所引用类型。...创建数组需要调用Array静态 CreateInstance方法(有几个重载版本)。所有版本CreateInstance方法获取第一个参数都是对数组元素Type引用。

79410

三、公共语言运行时(CLR)简介

(exe),也可以使dll(其中含有一组由可执行应用程序使用类型),最终都由CLR来管理执行这些程序集中代码.这就意味者如果目标机器要想执行程序集,就必须安装.Net Framework.大多数windows...在发售时就已经安装了.Net Framework. 2、win10下校验.Net Framework环境 (1)、判断是否安装 C:\Windows\SysWOW64在当前路径下判断是否有下图中dll...如果有,说明Net Framework已安装 (2)、win10检测所有安装.Net Framework版本,以及相关进程Id 打开cmd,定位到clrver.exe文件路径,执行clrver -...可以去任务管理器中校验结果. 3、windows32位版本和64位版本对编译器生成托管模块影响以及对CLR行时影响 (1)、问题  众所周知,windows包含32位和64位两个版本,所以相同程序集代码在这两个环境下会有差异.../platform命令行开关选项.这个开关选项允许指定最终生成程序集只能在运行32位版本windows下x86机器、只能在运行64位windows64位x64机器上运行、或者只能在运行32位Windows

1.5K60

ASP.NET 5系列教程 (一):领读新特性

ASP.NET 5提供了三种运行时,你可以根据实际需要灵活选择: 1. 全功能.NET CLR 全功能.NET CLR 是Visual Studio工程默认运行时状态。...核心CLR (cloud-optimized runtime) 核心 CLR 是精简完全模块化运行时。这个CLR已经被重新设计成组件便于你仅包含项目中实际使用.NET特性。...核心CLR可以伴随应用一起部署并且不同核心CLR可以并行运行。 3. 跨平台CLR 微软将发布针对于Linux 和 Mac OS X 发布跨平台运行时。...开源 ASP.NET源码已经发布到GitHub中。不仅仅提供了当前版本源代码,微软也承诺会同步更新GitHub中源码,你可以及时查看到ASP.NET 变化,可以下载并且提交更改到GitHub上。...例如当前有使用Web Forms、 MVC 5、 Web API 2、SignalR 2、 Web Pages 3 或 Entity Framework 6 开发应用,你仅需设置当前行时版本为全功能运行时

3.2K80

“前.NET Core时代”如何实现跨平台代码重用 ——程序集重用

在运行时,通过元数据描述引用程序集信息是CLR定位目标程序集依据,但是这并不意味着它与实际加载程序集是完全一致,后者实际上是根据当前执行环境动态加载,我们姑且将这个机制成为“程序集动态绑定”。...二、程序集一致性 我们都知道.NET Framework是向后兼容,也就是说原来针对低版本.NET Framework编译生成程序集是可以直接在高版本CLR下运行。...:运行过程中加载.NET Framework程序集(承载FCL程序集)是由当前行时CLR)决定,这些程序集版本总是与CLR版本相匹配。...包含在元数据中程序集信息提供目标程序集名称,而版本则由当前运行CLR来决定,我们将这个重要机制称为“程序集一致性(Assembly Unification)”,下图很清晰地揭示了这个特性。...当CLR在定位目标程序集时候就是根据这个标记决定是否需要重定向到当前行时环境下与之匹配程序集,并且这个程序集有可能在版本和公钥令牌均与元数据描述不同。

1.1K80

六、CLR托管代码应用程序与非托管代码程序之间性能对比

1、托管程序二次编译问题,以及微软做优化 五、CLR加载程序集代码时,JIT编译器对性能产生影响中介绍了CLR下托管应用程序二次编译对性能产生影响.事实上,在IL编译成本机代码时候时候...但是,在微软做了大量性能优化工作之后,将这些额外开销保持在最低限度之内. 2、托管程序实际性能 事实上,托管程序性能实际上要比非托管应用程序要好,举个例子,当JIT编译器在运行时将IL代码编译器编译成本机代码时候...如果JIT编译器没有使托管应用程序达到应有的效果,如果需要进一步确认,有两种方法: (1)、.Net Framework SDK提供NGen.exe工具 该工具将程序集所有的IL代码编译成本机代码,...并将这些本机代码保存到一个磁盘文件中,在运行时加载程序集时,CLR自动判断是否存在该程序集预编译版本。...如果是,CLR就加载预编译版本. 注:NGen.exe对最终执行环境预设是很保守,所以,NGen.exe生成代码不会像JIT编译器生成代码那样进行高度优化。

87540

《C#图解教程》读书笔记之一:C#和.NET框架

本篇已收录至《C#图解教程》读书笔记目录贴,点击访问该目录可获取更多内容。....NET框架第一个版本,.NET框架是一种比MFC和COM编程技术更一致并面向对象环境。   ...3.2 编译成本机代码   程序CIL直到它被调用执行时才会被编译成本机代码,在运行时CLR执行如下图所示步凑。 ?   ...这里有两个名词需要理解:   (1)托管代码:使用.NET框架编写代码成为托管代码(Managed Code),需要CLR。   ...四、核心组件—CLR:一个不辞辛劳清洁工   毫无疑问,.NET框架核心组件是CLR(公共语言运行时),它在操作系统顶层,负责管理程序执行。 ?

71230

.NET Core跨平台奥秘:复用之殇

程序集一致性 我们都知道.NET Framework是向后兼容,也就是说原来针对低版本.NET Framework编译生成程序集是可以直接在高版本CLR下运行。...)直接运行App.exe,我们会在控制台上得到如下图所示输出结果,可以看到三个程序集版本全部变成了4.0.0.0,也就说真正被CLR加载这些基础程序集是与当前CLR版本相匹配。...这个简单实例体现了这么一个特征:运行过程中加载.NET Framework程序集(承载FCL程序集)是由当前行时CLR)决定,这些程序集版本总是与CLR版本相匹配。...从如下给出配置文件内容可以看出.NET Framework 3.5采用行时CLR版本为 “v2.0.50727” 。...其实Framework 2.0、3.0和3.5不仅仅共享相同行时CLR 2.0),对于提供基础类型核心程序集mscorlib.dll也是共享,下图输出版本信息已经说明了这一点。

1.2K80

快速入门系列--CLR--02多线程

此外,如果是在IIS中托管CLR,线程池限制很多,而且是CLR中所有的appdomain共享,容易出现意料不到错误,推荐使用.NET异步模型TPL。     ...它包括以下常用公共属性: 属性 解释 CurrentContext 获取线程正在其中执行的当前上下文。 CurrentThread 获取当前在运线程。...ExecutionContext 获取一个 ExecutionContext 对象,该对象包含有关当前线程各种上下文信息。 IsAlive 获取一个值,该值指示当前线程执行状态。...ThreadState 获取一个值,该值包含当前线程状态。...一个应用程序域中可能包括多个上下文,而通过CurrentContext可以获取线程当前上下文,CurrentThread是最常用一个属性,它是用于获取当前运行线程。

87490
领券