获取项目可编程性中所有resx文件的列表

时间:2017-11-28 11:58:16

标签: c# .net resx

我想通过任何.net实体(而不是System.IO)获取项目及其路径中可用的所有resx文件的列表

当我用记事本打开csproj文件时,我可以看到一个反映项目树层次结构的xml包含所有resx文件 我可以在c#中传递这种数据可编程性吗?

1 个答案:

答案 0 :(得分:0)

这取决于,如果您只想考虑项目中包含的resx个文件,则必须解析csproj个文件(基本上只有一个XML文件)并遍历它们以检索resx引用。

在这种情况下,只需加载解决方案文件夹中的所有csproj

var projectFiles = Directory.GetFiles(solutionDir,"*.*",SearchOption.AllDirectories).Where(f => Path.GetExtension(f) == ".csproj");

然后去进行残酷的解析。

如果您只想选择所有resx个文件,而不考虑它们是否包含在项目中:

var resxFiles = Directory.GetFiles(solutionDir,"*.*",SearchOption.AllDirectories).Where(f => Path.GetExtension(f) == ".resx");

您还可以使用csproj解析MSBuild API个文件(需要引用Microsoft.Build.Engine程序集):

Project project = new Project();
project.Load(projectFile);