编译器失败,错误代码为 -2146232576

原文

罪魁禍首是Microsoft.Net.Compilers包,用於在您的項目中支持現代C#語法/功能(版本6.0,7.0),特別是在Razor視圖中。根據其版本的不同,該軟件包需要在相關機器上安裝安裝的完整.NET框架的特定最低版本。

例如,2.2.0包需要.NET 4.6+。即使你的項目的目標是.NET 4.5.2,你可能在你的開發機器上安裝了最新的.NET,而且一切都很順利。遠程部署機器只安裝了.NET 4.5.2,當您的ASP.NET應用程序嘗試在運行時編譯資源(例如視圖)時,您會收到錯誤-2146232576

您的選擇:

  1. 如果您確實需要使用新望C#功能在您的項目 - 安裝最新的.NET Framework到遠程計算機。
  2. 如果您對僅提供更多或更少的現代C#功能感到滿意 - 將Microsoft.Net.Compilers軟件包降級爲僅需要您的遠程機器上的框架的版本。例如,版本1.3.2只需要.NET 4.5。
  3. 如果你並不需要在所有上述功能,只需從你的項目中刪除Microsoft.Net.CompilersMicrosoft.CodeDom.Providers.DotNetCompilerPlatform(羅斯林CodeDom中提供)封裝。
 

解决方案:

解決方法:

我面臨這個問題升級後一些NuGets並通過下面的步驟來解決。

步驟1:NuGet Package Console移除這些的NuGet包

PM> Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform 
PM> Uninstall-package Microsoft.Net.Compilers 

步驟2:後:在Web.config

<system.codedom> 
     <compilers> 
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"></compiler> 
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"></compiler> 
     </compilers> 
</system.codedom>

再发布就可以了。

参考链接

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值