我正在使用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);
}
}
}
我想插入几行来输出项目,与文件在同一目录中
答案 0 :(得分:1)
通常,您可以使用Workspace.ApplyChanges()
方法将文档和项目的更改输出到其原始位置。请注意,并非ApplyChanges
支持项目的所有可能更改。
通常,对于项目文件的足够复杂的更改,您应该直接使用MSBuild API来操作.csproj文件。