将项目从.NET 4.5重定向到.NET 2.0时,无法加载Microsoft.CodeDom.Providers.DotNetCompilerPlatform

问题描述:

我们的Web服务器当前正在运行/利用运行在其上的应用程序的.NET 2.0。我使用ASP.NET和Visual Basic为我的老板创建了几个网站;我对这个平台很陌生,但我的网站已经非常出色。我只是简单地使用Visual Studio来创建一个新的空ASP.NET Web应用程序,并从那里开始。将项目从.NET 4.5重定向到.NET 2.0时,无法加载Microsoft.CodeDom.Providers.DotNetCompilerPlatform

他说他想切换到4.5,但我知道不想造成任何服务中断。这让我不得不将我的两个Web应用程序重新定位到.NET 2.0。我目前遇到的唯一问题是个例外:

无法加载文件或程序集“Microsoft.CodeDom.Providers.DotNetCompilerPlatform,版本= 1.0.0.0,文化=中性公钥= 31bf3856ad364e35”或一个的依赖关系。此程序集由比当前加载的运行时更新的运行时构建,无法加载。

我已经使用NuGet包还原(如网上说的),我必须手动“安装,封装/更新,包装-reinstall” Microsoft.CodeDom.Providers.DotNetCompilerPlatform,但它仍然抛出异常。我甚至创建了一个新项目,目标为2.0,创建了Web Forms页面,运行它,并且仍然收到错误。

任何帮助将不胜感激。可能只是我完全失踪,因为我对这个平台很陌生。

+0

过去五到十年间,所有新功能都集中在.NET Framework 3.5及更高版本(特别是4.5及更高版本)上。如果你的老板没有意识到这个事实,我建议你提醒他/她。 –

+0

@LexLi他当然确实认识到需要改变,但幸运的是我的应用程序不依赖任何_after_ 2.0。 2.0之后我应该知道有什么重大改进?我知道我的问题是由于DotNetCompilerPlatform在2.0之后的3年以后才会出现。谢谢回复! –

虽然这并不能完全回答你的问题,但你需要知道同一个IIS服务器上的不同Web应用程序可以使用不同版本的.NET框架。

只需将每个Web应用程序设置为使用不同的应用程序池,然后将应用程序池的框架设置为您所需的。当然,它应该被设置为应用程序的期望。

只是为了回到这里并且一劳永逸地关闭它,我不可能做我想做的事情。在4.5.2 .NET项目的代码是由我在这个问题挂编,

Microsoft.CodeDom.Providers.DotNetCompilerPlatform

无论出于何种原因,重新定位到所需的.NET 2.0我做了一个新的项目,最初的目标是2.0(没有重定向),然后将我的文件转储到项目。其中无缝工作。