Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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
.net 3.5 2.0/3.5并排装配_.net 3.5_.net 2.0 - Fatal编程技术网

.net 3.5 2.0/3.5并排装配

.net 3.5 2.0/3.5并排装配,.net-3.5,.net-2.0,.net 3.5,.net 2.0,我有一个web应用程序,我希望集成来自两个独立提供者的程序集中的功能。一组(Set1)程序集构建在.NET 2.0上,而另一组(Set2)程序集绝对需要.NET 3.5。为了让Set2程序集工作,我必须向web.config添加(system.codedom)部分,并指定v3.5编译器。然而,这似乎破坏了引用Set1程序集的代码(JIT编译器需要花费很长时间,请求超时)。当我删除system.codedom部分时,引用Set2的应用程序的某些功能失败 我们开始这个项目的时候就知道.NET2.0和

我有一个web应用程序,我希望集成来自两个独立提供者的程序集中的功能。一组(Set1)程序集构建在.NET 2.0上,而另一组(Set2)程序集绝对需要.NET 3.5。为了让Set2程序集工作,我必须向web.config添加(system.codedom)部分,并指定v3.5编译器。然而,这似乎破坏了引用Set1程序集的代码(JIT编译器需要花费很长时间,请求超时)。当我删除system.codedom部分时,引用Set2的应用程序的某些功能失败

我们开始这个项目的时候就知道.NET2.0和3.5可以共存而没有任何问题。有没有办法让这两套组件很好地发挥作用

编辑:下面是system.codedom部分的外观

  <system.codedom>
<compilers>
  <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
    <providerOption name="CompilerVersion" value="v3.5"/>
    <providerOption name="WarnAsError" value="false"/>
  </compiler>
  <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
    <providerOption name="CompilerVersion" value="v3.5"/>
    <providerOption name="OptionInfer" value="true"/>
    <providerOption name="WarnAsError" value="false"/>
  </compiler>
</compilers>


如果应用程序域是在.NET 2.0中启动的,则只有.NET 2.0程序集才能加载。如果您的应用程序域是在.NET 3.5中启动的,您将能够毫无问题地加载.NET 2.0和.NET 3.5程序集

例如,假设您创建了一个Windows应用程序项目,并将目标设置为.NET 2.0,则无法加载.NET 3.5程序集。如果您的项目目标是.NET 3.5,则2.0程序集和3.5程序集将毫无问题地加载。

对于.NET web应用程序(ASP.NET),没有“3.5运行时”。ASP.NET 3.5应用程序在2.0运行时运行,3.5“stuff”只是添加了必须安装在计算机上的库

您确定正在运行此功能的服务器上已安装3.5吗


您是否正在重新编译自己的web应用程序?或者只是更改配置文件?你的应用程序是什么类型的项目?网站项目?Web应用程序项目?

CLR在2.0和3.5之间没有变化-核心BCL也没有变化。3.0和3.5只添加了新内容-它们应该与2.0完全兼容


我也遇到过同样的情况,但那是在运行.net 3.5/vs2008的测试版时发生的。如前所述,3.5只是一个“附加组件”。

您可以在.Net 3.5中重新编译Set1吗?.Net 2.0和3.5可以共存,只要一个应用程序以2.0的形式运行,另一个应用程序以3.5的形式运行,因此加载了两个运行时。在一个应用程序(流程)中,您只能使用一个版本。这无关紧要。似乎Set1无法在.NET3.5中重新编译,而调用Set2的是Set1。除非Set1在.NET 3.5中重新编译,或者Set2在.NET 2.0中重新编译,否则我看不到会发生这种情况。为了澄清,这两组程序集不会相互调用,是App_代码和aspx页面中的代码引用了这两组程序集。请检查顶级被调用方(启动AppDomain的被调用方)如果你能让代码以.NET 3.5为目标,比如说我在Global.asax(Application_Start)中添加了一行代码来调用.NET 3.5的一些特性,这可能会解决它?不幸的是,我对ASPX和WinForms的了解不够,无法回答你的问题。这是一个网站项目,正在编译的代码是App_代码和ASPX代码,这也是我的想法!现在,我们来找出问题的根源。