我正在尝试使用VBCodeProvider动态编译程序集。我遇到的问题是我需要给CompilerParameters类一个引用的程序集列表。
使用的代码是:
CompilerParameters parameters = new CompilerParameters();
parameters.ReferencedAssemblies.AddRange(AppDomain.CurrentDomain.GetAssemblies().Select(a => a.Location).ToArray());
parameters.GenerateExecutable = false;
parameters.GenerateInMemory = true;
parameters.IncludeDebugInformation = false;
CodeDomProvider provider = new Microsoft.VisualBasic.VBCodeProvider();
// Compile the assembly in memory.
CompilerResults results = provider.CompileAssemblyFromDom(parameters, compileUnit);
问题是当provider.CompileAssemblyFromDom
行运行时,会产生以下错误:
vbc : Command line (0,0) : error BC2006: option 'r' requires':<file_list>'
但是,如果我使用CSharpCodeProvider
provider = new Microsoft.VisualBasic.CSharpCodeProvider();
一切正常。
这是VBCodeProvider
中的已知错误吗?