Roslyn导致发布网站时报错-编译失败

  • Post author:
  • Post category:其他


最近新升级了Visual Studio 2017,创建的Web项目Bin目录中多了一个叫roslyn的文件夹,该文件夹导致网站在某些服务器上发布出错

从网上搜索了一下,Roslyn是新出的动态编译工具

但是在服务器上安装.net4.6后仍然提示编译出错。

解决方法:打开解决方案NuGet包管理器,卸载一个叫“Microsoft.CodeDom.Providers.DotNetCompilerPlatform”的包,之后重新编译网站,发现Bin目录下没有roslyn文件夹了!

还是不行的话 croj中去掉



  1. <Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />

  2. <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

  3. <PropertyGroup>

  4. <ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>

  5. </PropertyGroup>

  6. <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />

  7. </Target>

webconfig 注释掉



  1. <!-- <system.codedom> -->

  2. <!-- <compilers> -->

  3. <!-- <compiler language="c#;cs;csharp" extension=".cs" -->

  4. <!-- type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" -->

  5. <!-- warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" /> -->

  6. <!-- <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" -->

  7. <!-- type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" -->

  8. <!-- warningLevel="4" -->

  9. <!-- compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" /> -->

  10. <!-- </compilers> -->

  11. <!-- </system.codedom> -->



版权声明:本文为qq_17056391原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。