如何解决 Roslyn csc.exe 在共享主机上的问题

2018/04/16 382

症状

解决方案

如果你视图在共享主机上发布Roslyn,则应该知道它在完全信任模式下运行。共享主机不允许自动使用完全信任模式。所以我们需要禁用 Roslyn Compiler NuGet卸载 Microsoft.CodeDom.Providers.DotNetCompilerPlatformMicrosoft.Net.Compilers

什么是Roslyn

Roslyn是Visual Studio 2015中的新默认编译器。如果您在Visual Studio 2015中构建和运行应用程序,那么它们将使用Roslyn编译器进行编译。 您将会利用仅在新编译器中可用的所有新C#6功能。

如果你使用的是VS2015,Roslyn已经完全取代了旧的编译器,据我所知你不能在VS 2015中使用旧的编译器。

Roslyn也是一个平台,允许你创建可以修改,解释和理解其他程序的程序。 这并不意味着让你编写修改自身的代码(尽管这可能在一定程度上)。

Roslyn常用使用场景:

如果在视图(MVC项目)中使用了一些新的C#6.0语言功能将不会编译。

为什么Asp.Net模式使用预编译

  1. 支持新的语言功能
  2. 潜在改进的应用程序启动/预编译时间

第一个项目是相当自我解释。 第二个对于具有非常大、复杂的 ASP.NET 应用程序的客户尤其有用。在我们测试一个适当的大和复杂的应用程序 ( bin中程序集 > 600, 页面 > 500), 运行时编译成本在启动/预编译从15分钟下降到70秒。

在 ASP.NET 应用程序中启用. NET 编译器平台 ("Roslyn")

评论