public CompilerResults Compile(DirectoryInfo[] directories, string assemblyFileName, string[] referenceAssemblies = null, bool executable = false) { if (referenceAssemblies == null) { referenceAssemblies = DefaultReferenceAssemblies.ToArray(); } return(AdHocCSharpCompiler.CompileDirectories(directories, assemblyFileName, referenceAssemblies, executable)); }
public void ShouldBeAbleToDownloadAndCompileCSharpProxy() { BamServer server; SecureServiceProxyClient <EncryptedEcho> sspc; ServiceProxyTestHelpers.StartSecureChannelTestServerGetEncryptedEchoClient(out server, out sspc); string value = Http.Get("http://localhost:8080/ServiceProxy/CSharpProxies?namespace=My.Test.Namespace&classes=EncryptedEcho"); FileInfo codeFile = new FileInfo(".\\Tmp\\code.cs"); if (codeFile.Directory.Exists) { codeFile.Directory.Delete(true); } codeFile.Directory.Create(); value.SafeWriteToFile(codeFile.FullName, true); List <string> referenceAssemblies = new List <string>(DaoGenerator.DefaultReferenceAssemblies); referenceAssemblies.Add(typeof(ServiceProxyClient).Assembly.GetFileInfo().FullName); referenceAssemblies.Add(typeof(BamServer).Assembly.GetFileInfo().FullName); CompilerResults results = AdHocCSharpCompiler.CompileDirectories(new DirectoryInfo[] { codeFile.Directory }, ".\\Tmp\\TestClients.dll", referenceAssemblies.ToArray(), false); if (results.Errors.Count > 0) { StringBuilder message = new StringBuilder(); foreach (CompilerError err in results.Errors) { message.AppendLine(string.Format("File=>{0}\r\n{1}:::Line {2}, Column {3}::{4}", err.FileName, err.ErrorNumber, err.Line, err.Column, err.ErrorText)); } OutLine(message.ToString(), ConsoleColor.Red); } Expect.AreEqual(0, results.Errors.Count); Expect.IsTrue(results.CompiledAssembly.GetFileInfo().Exists); server.Stop(); }
private static void Compile(DirectoryInfo[] dirs, FileInfo file) { DaoGenerator generator = new DaoGenerator(GetNamespace()); CompilerResults results = AdHocCSharpCompiler.CompileDirectories(dirs, file.Name, DaoGenerator.DefaultReferenceAssemblies.ToArray(), false); OutputCompilerErrors(results); }