public static ZMFile ToZMFile(this ZMFileData data, string filepath) { if (data == null) throw new ArgumentNullException("data"); var pf = new ZMFile(filepath, data.BuildDir, data.SourceFiles, data.ReferenceFiles); return pf; }
public static void Save(this ZMFileRepo repo, ZMFile zmFile, string filepath) { if (repo == null) throw new ArgumentNullException("repo"); using (var fs = File.Open(filepath, FileMode.Create, FileAccess.Write)) { repo.Save(zmFile, fs); } }
public void Save(ZMFile zmFile, Stream stream) { using (var writer = new StreamWriter(stream)) { using (var jsonWriter = new JsonTextWriter(writer)) { var serializer = new JsonSerializer(); serializer.Formatting = Formatting.Indented; var data = zmFile.ToData(); serializer.Serialize(jsonWriter, data); } } }
public ProjectCompilerResult Compile(ZMFile projectFile) { var filename = Path.GetFileNameWithoutExtension(projectFile.FileName); var outputFilename = string.Format("{0}.dll", filename); var outputFilepath = Path.Combine(projectFile.BuildDir, outputFilename); var workDir = projectFile.FileDir; if (!Directory.Exists(projectFile.BuildDir)) Directory.CreateDirectory(projectFile.BuildDir); var args = new CSharpCompilerArgs(workDir, outputFilepath, projectFile.SourceFiles, projectFile.ReferenceFiles); var csc = new CSharpCompiler(); var cscResult = csc.Compile(args); var result = new ProjectCompilerResult(cscResult.OutputAssemblyFilepath); return result; }