如何使用C#v3.5动态编译DLL?

时间:2017-07-04 03:39:06

标签: c# unity3d .net-assembly

我可以在运行时从一个简单的代码字符串编译DLL而不会出现任何问题。在IL Spy中打开它可以准确地显示它应该是什么。但是如果我在代码中放入任何扩展方法,它会输出以下错误:

error CS1644: Feature `extension methods' cannot be used because it is not part of the C# 2.0 language specification

我能找到的唯一帮助就是我应该能够设置" CompilerVersion"到" v3.5"通过向代码提供者提供选项字典,但它根本没有帮助。

这是我的代码:

var options = new System.Collections.Generic.Dictionary<string, string> { { "CompilerVersion", "v3.5" } };
var codeProvider = new Microsoft.CSharp.CSharpCodeProvider(options);
var provider = System.CodeDom.Compiler.CodeDomProvider.CreateProvider("CSharp");
var parameters = new System.CodeDom.Compiler.CompilerParameters();
parameters.GenerateExecutable = false;
parameters.OutputAssembly = "AutoGen.dll";
var results = provider.CompileAssemblyFromSource(parameters, code);
Debug.Log(results.Errors.DeepToString());

0 个答案:

没有答案