3
我正在使用CSharpCodeProvider將CodeDom對象編譯爲程序集。應用程序本身在.NET 4.0下運行。不過,我需要CompileAssemblyFromDom的輸出來針對.NET 2.0構建,以便與一些外部資源兼容。我如何告訴CSharpCodeProvider構建對.NET 2.0?CSharpCodeProvider輸出從.NET 4.0應用程序輸出.NET 2.0程序集
我正在使用CSharpCodeProvider將CodeDom對象編譯爲程序集。應用程序本身在.NET 4.0下運行。不過,我需要CompileAssemblyFromDom的輸出來針對.NET 2.0構建,以便與一些外部資源兼容。我如何告訴CSharpCodeProvider構建對.NET 2.0?CSharpCodeProvider輸出從.NET 4.0應用程序輸出.NET 2.0程序集
您可以通過採用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。