.net framework版本(或运行什么?)

.net framework版本(或运行什么?),.net,frameworks,version,.net,Frameworks,Version,好的,这是一个相当广泛的问题,但是。。。是否有一个图表说明框架的哪个版本将运行什么 所以,我想它可以归结为两个问题 1-框架是否100%向后兼容?我有一个Framework 2.0网站运行1.1 DLL,所以我假设2.0将运行1.1。这对windows应用程序有效吗?它适用于所有版本吗 2-框架是否具有向前兼容能力?我知道上面的反面不起作用,但它对任何版本都有效吗 那么,保持客户端机器上的版本与构建版本同步有多重要 在.net社区中,有没有一个最佳实践,可以让您的软件在不强迫非技术用户下载较新/

好的,这是一个相当广泛的问题,但是。。。是否有一个图表说明框架的哪个版本将运行什么

所以,我想它可以归结为两个问题

1-框架是否100%向后兼容?我有一个Framework 2.0网站运行1.1 DLL,所以我假设2.0将运行1.1。这对windows应用程序有效吗?它适用于所有版本吗

2-框架是否具有向前兼容能力?我知道上面的反面不起作用,但它对任何版本都有效吗

那么,保持客户端机器上的版本与构建版本同步有多重要


在.net社区中,有没有一个最佳实践,可以让您的软件在不强迫非技术用户下载较新/不同版本的.net framework的情况下为最多数量的客户端工作?

在任何地方都没有看到图表,但一般来说,您不必担心向后兼容性。唯一重要的是确保您的客户机安装了最低限度的框架


不,没有一个.NET版本是向前兼容的。

根据经验,如果.NET版本X与.NET版本Y并行安装,那么.NET版本X与.NET版本Y不兼容(向后或向前)。这是我使用了很长时间的规则(自.NET 2.0问世以来)。对于小规模的应用程序来说,这可能太安全了,但安全总比后悔好

以下是一些具体的例子:

  • .NET 4.0将无法正确运行.NET 3.x或更早版本的应用程序
  • .NET3.5将运行.NET3.0和.NET2.0应用程序,但不运行.NET1.1
  • .NET3.0将运行.NET2.0应用程序,但不会运行.NET1.1
  • .NET 2.0将不会运行.NET 1.1

  • .NET 4.0与.NET 3.5/3.0/2.0和.NET 1.1并排安装

  • .NET 3.5、3.0和2.0不能并排安装
  • .NET 3.5/3.0/2.0与.NET 1.1并排安装
希望这能有所帮助。

IMO,迄今为止的“主要”版本是:

  • 1.0
  • 1.1
  • 2.0、3.0、3.5(我认为这些是由于主要的C#扩展而分离出来的)
  • 4.0
不同线路上的框架并排安装,互不运行;只要主机至少安装了组件的版本,同一生产线上的组件可以互换使用

目前所有的.NET版本都配有Windows,它们现在被视为操作系统的一部分,并遵循其生命周期。(请参阅)如果您的用户一直保持计算机的最新状态,则使用最新的.NET Framework版本应该没有问题

确保对于1.0之后的配置文件,包含
元素:


正如Jim Schubert在评论中提到的,您的C#代码可能会在更高版本上编译,但会有一些突破性的更改。

我认为框架之间的更改太多,无法将所有内容都放入一个图表中。你可以在谷歌上搜索“.NET突破性的变化”,并找到关于不同版本之间变化的很好的文档,但它从来都不在一个中心位置。事实上,我对运行1.1 DLL的2.0网站非常好奇。。。它是否对其他DLL(包括系统DLL)没有依赖关系?我相当肯定这是不可能的…早在-当我们将我们的站点更新到2.0框架时,我们没有重新编译绝大多数DLL。我们所做的唯一一件事就是对它们进行了突破性的更改(现在我有点模糊地知道ASP.Net框架和.Net框架版本之间存在差异,所以我不清楚这些差异,所以下面的评论可能在技术上是错误的)当我们将网站更新为3.5.Net框架时,我们也不需要做任何更改。我只是和一位同事聊了聊。我们目前有一个在1.1中构建的页面,它继承了3.5 dll中的一个基本对象。不同的JIT框架是否可以处理“串扰”?3.5中没有C#扩展。