14
CSharpCodeProvider codeProvider = new CSharpCodeProvider();
ICodeCompiler MyCompiler = codeProvider.CreateCompiler();
CompilerParameters myParameters = new CompilerParameters();
myParameters.GenerateExecutable = true;
myParameters.OutputAssembly = @"prog.exe";
myParameters.TreatWarningsAsErrors = false;
CompilerResults results = myCompiler.CompileAssemblyFromFile(myParameters,"prog.txt");

この警告を排除するためにこのコードを書くにはどうすればよいですか?

System.CodeDom.Compiler.CodeDomProvider.CreateCompiler()'は廃止されました:' "呼び出し元はICodeCompilerインターフェイスを使用せず、代わりにCodeDomProviderクラスで直接メソッドを使用する必要があります。CodeDomProviderから継承するものは引き続きこのインターフェイスを実装する必要があり、これを除外する必要があります警告するか、このメソッドを廃止します。**

4

2 に答える 2

10

代わりに次の方法を使用してください。

CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp");

拡張:

if (CodeDomProvider.IsDefinedLanguage(language))
{
    CodeDomProvider provider = CodeDomProvider.CreateProvider(language);
    // ...
}
else
    Console.WriteLine("ERROR");
于 2013-01-18T19:23:26.853 に答える
3
CSharpCodeProvider codeProvider = new CSharpCodeProvider();
CompilerParameters myParameters = new CompilerParameters();
myParameters.GenerateExecutable = true;
myParameters.OutputAssembly = @"prog.exe";
myParameters.TreatWarningsAsErrors = false;
CompilerResults results = codeProvider.CompileAssemblyFromFile(myParameters, "prog.txt");
于 2014-06-10T18:59:23.267 に答える