public static Compile ( string source, bool targetCSharp6 = false ) : |
||
source | string | The source. |
targetCSharp6 | bool | |
return |
public static CompilerResults Compile(string source, bool targetCSharp6 = false)
{
//
// Compile the test source file
//
CompilerParameters parameters = new CompilerParameters();
parameters.GenerateInMemory = true;
parameters.GenerateExecutable = false;
parameters.CompilerOptions = "/unsafe";
parameters.ReferencedAssemblies.Add("mscorlib.dll");
parameters.ReferencedAssemblies.Add("System.dll");
parameters.ReferencedAssemblies.Add("System.Data.dll");
parameters.ReferencedAssemblies.Add("System.Xml.dll");
parameters.ReferencedAssemblies.Add("System.Core.dll");
var provider = targetCSharp6 ?
new Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider() :
CSharpCodeProvider.CreateProvider("CSharp");
return provider.CompileAssemblyFromSource(parameters, source);
}
private static bool Compile(string tempFile) { var results = CSharpTestFile.Compile(File.ReadAllText(tempFile), true); if (results.Errors.Count > 0) { CompilerError error = null; error = TestUtilities.GetCompilerError(results); if (error != null) { string messageFormat = "Test source code should not produce compiler errors. " + "Error: {0} - {1}, line {2}, column {3} "; Assert.Fail( messageFormat, error.ErrorText, tempFile, error.Line, error.Column); } return(false); } return(true); }