CodeDomProvider を使用してコンパイルを緩和する方法はありますか? 以下を使用して、既に実行中のプログラムに dll ファイルをコンパイルしてロードしようとしています。
public static String Compile(string commandName, string source = "")
{
private static CodeDomProvider compiler = new CSharpCodeProvider(new Dictionary<string, string>() { { "CompilerVersion", "v3.5" } });
private static CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = false;
parameters.MainClass = commandName;
parameters.OutputAssembly = dll;
parameters.ReferencedAssemblies.Add("MCLight_.dll");
parameters.CompilerOptions = "/optimize";
parameters.WarningLevel = 4;
parameters.TreatWarningsAsErrors = false;
StreamReader sr = new StreamReader(sourcepath + "cmd" + commandName + ".cs");
results = compiler.CompileAssemblyFromSource(parameters, sr.ReadToEnd());
.....
}
問題は、次のようなエラーです。
エラー #CS0122 メッセージ: 保護レベルが原因で 'MCLight.Independent' にアクセスできません 行: 1178
と
エラー #CS1501 メッセージ: メソッド 'Find' のオーバーロードはありません '1' 引数を取ります 行: 617
投げられています。
これで、VS のソリューションの一部としてコンパイルすると、このクラスが正常にコンパイルされることがわかりました。しかし、個別にコンパイルすると、これらのエラーがスローされます。アプリケーションに問題なくフックされることがわかっているため、コンパイラにこれらのエラーを無視させる方法はありますか?