3

我正在使用 CSharpCodeProvider 将 CodeDom 对象编译为程序集。应用程序本身在 .NET 4.0 下运行。但是,我需要 CompileAssemblyFromDom 的输出来针对 .NET 2.0 进行构建,以便与某些外部资源兼容。如何告诉 CSharpCodeProvider 针对 .NET 2.0 构建?

4

1 回答 1

5

您可以通过采用 providerOptions (IDictionary) 参数的 CSharpCodeProvider 构造函数将编译器版本作为选项提供。如果您使用 CodeDomProvider.CreateProvider,您可以使用其类似的重载。例如:

using (CodeDomProvider provider = CodeDomProvider.CreateProvider(
    "CSharp",
    new Dictionary<string, string>() { { "CompilerVersion", "v2.0" } }))
{
    //...
}

编译器版本也可以通过配置文件指定。有关详细信息和示例,请参阅http://msdn.microsoft.com/en-us/library/bb537926.aspx

于 2010-09-20T13:47:10.573 回答