![](/img/trans.png)
[英]ReflectionTypeLoadException loading .Net 4.0 Assembly from .Net 4.0 application, while 2.0 works
[英]CSharpCodeProvider output .NET 2.0 assembly from .NET 4.0 application
我正在使用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" } }))
{
//...
}
也可以通过配置文件指定编译器版本。 有关详细信息和示例,请参阅http://msdn.microsoft.com/en-us/library/bb537926.aspx 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.