1

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

4

0 に答える 0