如果我不使用 CSharpCodeProvider 指定 CompilerVersion,会发生什么情况,为什么大多数示例都指定它?



使用CSharpCodeProvider传递CompilerVersion参数的典型代码示例。从这里开始的代码:

var codeProvider =
    new CSharpCodeProvider(
       new Dictionary<String, String> { { "CompilerVersion", "v3.5" } });

我尝试传递一个空字典,并尝试调用 CSharpCodeProvider 的无参数构造函数,结果是相同的。

那么如果我不指定"编译器版本",内部会发生什么?为什么大多数样本始终指定它?

文档指出它从框架配置文件夹中指定的machine.configweb.config获取它。

例如,我的 Framework64/config/web.config 文件包含以下内容:

<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
        <providerOption name="CompilerVersion" value="v4.0"/>
        <providerOption name="WarnAsError" value="false"/>
    </compiler>

相关内容

  • 没有找到相关文章

最新更新