代码之家  ›  专栏  ›  技术社区  ›  Keltex

可以将.NET 3.5 dll与.NET 2.0网站一起使用吗?

  •  6
  • Keltex  · 技术社区  · 17 年前

    我有一些内部更容易使用.NET 3.5的DLL(利用LINQ等)。我想将这些dll用于当前运行ASP.NET 2.0的ASP.NET网站。

    这种情况有可能吗?是否有任何限制或gotchas(例如,ASP.NET不调用返回.NET 3.5对象(如iqueryable)的方法)?

    注意:当然,.NET 3.5将安装在服务器上。

    4 回复  |  直到 17 年前
        1
  •  5
  •   John Saunders    17 年前

    为了扩展Foosnazzy所说的内容,.net 3.5(sp1)只是带有一些新程序集的.net 2.0sp2。不在网站上安装它的唯一原因是该网站不使用.NET 2.0 SP2运行。

    这与以前在.NET 1.0网站上安装.NET 1.1的方式非常不同,我负责破坏网站,即使网站没有使用1.1-我安装了1.1以便使用特定的工具。从.NET 1.1升级到.NET 2.0是一个更糟糕的噩梦。

    但微软从中吸取了教训。来自2.0.NET 3.5 SP1的.NET版本都使用.NET 2.0公共语言运行时(CLR)。事实上,安装了3.5的用户经常会惊讶地看到IIS设置,他们的网站仍然显示为正在运行.NET 2.0。但它与.NET 2.0完全相同,只是应用了两个服务包。任何不使用新程序集的站点都不会受到任何影响(超出了服务包的作用)。

    为了进一步重申所说的内容,C 3.0功能与框架无关。例如,可以在纯.NET 2.0代码中使用匿名类型和lambda。你什么 不能 do是使用linq,因为这需要.NET 3.5中的新程序集。

        2
  •  3
  •   Erik Funkenbusch    17 年前

    您可以在.NET 2.0中使用C_3的许多功能,但Linq不是其中之一。必须包含Linq dll,不允许单独分发,必须安装完整的3.5运行时。

    注意:如果安装了.NET 3.5,我认为如果站点没有配置为包含3.5中的程序集,您将遇到问题。它可能在Web应用程序项目(而不是Web窗体项目)中工作,因为DLL是预先编译的,并且可能在PE文件中包含必要的引用,但我不确定。

        3
  •  2
  •   Adam Fyles    17 年前

    3.5添加到2.0框架中,一切都是完全向后兼容的。

        4
  •  2
  •   stuartd saeed    17 年前

    总有 LinqBridge ,它允许您在.NET 2.0环境中使用Linq to对象。但是,根据您是使用ASP.NET Web应用程序还是使用ASP.NET网站项目,在将它与ASP.NET一起使用时需要注意一些问题。见 this page 更多信息。

    推荐文章