我正在使用CSharpCodeProvider将CodeDom对象编译成一个程序集。应用程序本身运行在.NET 4.0下。然而,为了与一些外部资源兼容,我需要从CompileAssemblyFromDom中获得针对.NET 2.0的输出。我该如何告诉CSharpCodeProvider构建针对.NET 2.0?
您可以通过CSharpCodeProvider构造函数的providerOptions(IDictionary)参数提供编译器版本作为选项。如果您使用CodeDomProvider.CreateProvider,您可以使用其类似的重载。例如:
using (CodeDomProvider provider = CodeDomProvider.CreateProvider(
"CSharp",
new Dictionary<string, string>() { { "CompilerVersion", "v2.0" } }))
{
//...
}