将项目对象写入项目文件

时间:2013-08-15 11:39:04

标签: c# roslyn

我正在使用Roslyn进行一些代码转换,程序的一个选项是输出转换后的源文件。但是我想把项目和* .csproj文件放在一起。我用来输出文件的代码是

 foreach (var project in solution.Projects)
        {
            foreach (var doc in project.Documents)
            {
                var fileName = Path.GetFileName(doc.FilePath);
                var directory = Path.Combine(Path.GetDirectoryName(doc.FilePath), "output");
                if (!Directory.Exists(directory))
                {
                    Directory.CreateDirectory(directory);
                }
                var outputPath = Path.Combine(directory, fileName);

                using (var writer = new System.IO.StreamWriter(File.OpenWrite(outputPath)))
                {
                    doc.GetText().Write(writer);
                }
            }
        }

我想插入几行来输出项目,与文件在同一目录中

1 个答案:

答案 0 :(得分:1)

通常,您可以使用Workspace.ApplyChanges()方法将文档和项目的更改输出到其原始位置。请注意,并非ApplyChanges支持项目的所有可能更改。

通常,对于项目文件的足够复杂的更改,您应该直接使用MSBuild API来操作.csproj文件。