使用roslyn编译website项目

Posted Chuck Lu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用roslyn编译website项目相关的知识,希望对你有一定的参考价值。

在Nuget中,添加Microsoft.CodeDom.Providers.DotNetCompilerPlatform。

在添加这个dll的时候,会自动在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.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
    </compilers>
  </system.codedom>

 

 

这个dll本身还依赖Microsoft.Net.Compilers (>= 2.4.0)。

最终的packages.config

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.8" targetFramework="net461" />
  <package id="Microsoft.Net.Compilers" version="2.4.0" targetFramework="net461" developmentDependency="true" />
</packages>

 

以上是关于使用roslyn编译website项目的主要内容,如果未能解决你的问题,请参考以下文章

Roslyn:如何将多个项目的编译合并为 1 个单独的编译?

使用基于Roslyn的编译时AOP框架来解决.NET项目的代码复用问题

初步了解到C#编译器Roslyn是一个开源的,但是却不知道如何安装Roslyn,希望懂的大神说明一下

基于 Roslyn 实现代码动态编译

使用 Roslyn 编译时自动解析依赖关系

使用 Roslyn 编译器服务