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
ですか?