通过Roslyn更改文件夹列表后,文件的位置不变

本文关键字:文件 位置 Roslyn 文件夹 列表 通过 | 更新日期: 2023-09-27 18:13:12

我正在尝试通过Roslyn更改现有文件的文件位置。

var msWorkspace = MSBuildWorkspace.Create();
var solution = msWorkspace.OpenSolutionAsync(Constants.pathToSolution).Result;
DocumentId documentIdToMove = ConsoleHelpers.GetDocumentIdForDocumentWithName(solution, "Person.cs");
var newSolution = solution.WithDocumentFolders(documentIdToMove, new List<string> { "SecondLevel", "ThirdLevel" });
msWorkspace.TryApplyChanges(newSolution);

最初,该文件位于主项目文件夹内的"SecondLevel"文件夹中。根据文档,WithDocumentFolders方法应该创建一个新的解决方案实例,其中包含指定更新的文档逻辑文件夹的顺序。

运行代码后,程序完成,没有任何异常,文件在磁盘上被更改,但位置保持不变。另外,TryApplyChanges方法返回true。当在项目中创建新文档并将更改保存到磁盘时,新文件将在文件夹顺序指定的位置创建,没有任何问题。

是否可以更改项目中现有文件的位置,然后将更改保存到磁盘?

通过Roslyn更改文件夹列表后,文件的位置不变

不支持这样更改文件夹。请随时在GitHub上提交bug。