【发布时间】:2010-11-02 13:26:16
【问题描述】:
我有一个 Web 应用程序,我希望将来自两个独立提供程序的程序集中的功能集成在一起。一组 (Set1) 程序集基于 .NET 2.0 构建,而另一组 (Set2) 程序集绝对 需要 .NET 3.5。为了使 Set2 程序集正常工作,我必须在 web.config 中添加一个 (system.codedom) 部分并指定 v3.5 编译器。但是,这似乎破坏了引用 Set1 程序集的代码(JIT 编译器需要永远并且请求超时)。当我删除 system.codedom 部分时,引用 Set2 的应用程序的某些功能会失败。
我们开始这个项目时知道 .NET 2.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 3.5 中重新编译 Set1 吗?
-
.NET 2.0 和 3.5 可以共存,只要一个应用程序以 2.0 运行,另一个以 3.5 运行,因此加载了两个运行时。在一个应用程序(进程)中,您只能使用一个版本。