[英]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.