使用CSharpCodeProvider
传递CompilerVersion
参数的典型代码示例。代码from here:
var codeProvider =
new CSharpCodeProvider(
new Dictionary<String, String> { { "CompilerVersion", "v3.5" } });
我试图传递一个空字典,并试图调用CSharpCodeProvider
的无参数构造函数,结果是一样的。
那么如果我没有指定`CompilerVersion,会在内部发生什么?为什么大多数样品始终指定它?
答案 0 :(得分:2)
文档说明它是从框架配置文件夹中指定的machine.config
或web.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>