c# - 较少严格的CodeDomProvider来编译DLL

有没有办法使用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解决方案的一部分进行编译时,此类可以很好地编译。但是当单独编译时,会引发这些错误。有一种方法可以让编译器忽略这些错误,因为我知道它会正确地挂接到应用程序中?

最佳答案

您可以尝试将警告级别降低:

      parameters.WarningLevel = 1;

但是,如果没有看到正在编译的代码源就很难确定。

https://stackoverflow.com/questions/12125895/

相关文章:

android - 编译应用程序时出现LogCat错误

compiler-construction - Flex编译错误

matlab - 在matlab中创建一个exe文件的问题

c# - 第一次使用msbuild

java - Java程序: unmappable character for encoding U

compiler-errors - 未在此范围内声明“RUSAGE_THREAD”

cocos2d-iphone - 在Xcode中禁用Apple Mach-o链接器错误

pdf - 编译haru text_demo.c 错误

actionscript-3 - 在函数外部使用变量。错误-参数数目不正确。预期1

visual-studio-2010 - USBView编译错误