1

我正在使用 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);
                }
            }
        }

我还想在与文件相同的目录中插入几行来输出项目

4

1 回答 1

1

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

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

于 2013-08-19T15:26:58.753 回答