我从http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27541安装了.NET 4.5 Developer预览版,它取代了.NET 4.0版本.
但是,检测.NET框架版本的旧方法似乎返回4.0(更准确地说是我的PC上的4.0.30319.17020),而不是4.5(确定可能是为了向后兼容,或者?):
using System;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
var version = Environment.Version;
Console.WriteLine(version.ToString());
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何检测我的代码是否真的由.NET 4.5执行?
随着最近发布的.NET 4.0和Visual Studio 2010,跟踪哪些.NET Framework版本构建在什么版本的CLR上并且属于Visual Studio的哪个版本变得越来越困难.
是否有显示这些关系的权威表格?
我试图VARBINARY(MAX)使用SQL确定SQL Server 2005中字段中内容的大小.我怀疑是否有本机支持,可以使用CLR集成吗?任何想法将不胜感激.
启用LINQ的应用程序是否可以在仅安装了.NET 2.0运行时的计算机上运行?
从理论上讲,LINQ只不过是语法糖,而得到的IL代码应该与.NET 2.0中的代码相同.
如何在不使用.NET 3.5库的情况下编写LINQ?它会在.NET 2.0上运行吗?
在.NET中,"Platform Target:Any CPU"编译器选项允许.NET程序集在x64计算机上以64位运行,在x86计算机上以32位运行.也可以使用"Platform Target:x86"编译器选项强制程序集在x64计算机上以x86身份运行.
是否可以使用"Any CPU"标志运行程序集,但是确定它是否应该在x86或x64 CLR中运行?通常,这个决定是由CLR/OS Loader(根据我的理解)基于底层系统的位数做出的.
我正在尝试编写一个可以与其他正在运行的进程交互(读取:注入代码)的C#.NET应用程序.x64进程只能注入其他x64进程,与x86相同.理想情况下,我想利用JIT编译和Any CPU选项,允许使用单个应用程序注入x64或x86进程(在x64机器上).
这个想法是应用程序将编译为任何CPU.在x64机器上,它将以x64运行.如果目标进程是x86,它应该重新启动它,强制CLR将其作为x86运行.这可能吗?
win API中是否有一个函数可用于提取HRESULT值的字符串表示形式?
问题是并非所有返回值都记录在MSDN中,例如,ExecuteInDefaultAppDomain()函数未记录为返回"0x80070002 - 系统找不到指定的文件."但是,确实如此!因此,我想知道是否有一个常用的功能.
我有兴趣在CLR上调查Clojure.我看到有一个端口 -但我总是对这些二等公民有点怀疑(即他们没有原始的稳定性或功能).如果一般人们发现CLR上的Clojure不成熟,我就不太愿意花这么多时间 - 我现在根本没有时间或精力去解决一堆问题.另一方面,如果CLR上的Clojure看起来很好吃,我今天就开始潜水吧!
在CLR上有没有关于Clojure的实际经验?
任何有关CLR版本的建议和/或其他帮助也将受到赞赏.
我读过一本书,将.net CLR称为虚拟机?谁能证明这一点?我们在某些开发平台上需要虚拟机概念的原因是什么?
是不是可以开发一个完全面向对象并且像.net一样强大的本机框架[没有虚拟机的框架]?
将CLR称为虚拟机的书是" Professional .Net Framework 2.0 ".
虽然我知道我以前用过的术语有时会忘记这些差异......所以只是为了保持一个参考的地方......谢谢大家的答案.
我想知道CLR和CLI之间究竟有什么区别?从我到目前为止所阅读的内容来看,它似乎表明CLI是CLR的一个子集.但是CLR中的所有内容都不是强制性的吗?CLR究竟可以省略什么来创建CLI?