1

Roslyn を使用してコード変換を行っています。プログラムのオプションの 1 つは、変換されたソース ファイルを出力することです。ただし、プロジェクトと *.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 に答える