如何从目录中确定文件是否为有效的msbuild文件,该目录可能包含许多xml文件?我正在读取目录中的所有文件,使用BeautifulSoup解析它们,确定它们是否具有project元素,以及 itemgroup , target 或 compile 元素,但是这种方法会返回许多误报。有可能对此做得更严格吗?
答案 0 :(得分:0)
对于初学者来说,您应该对msbuild文件使用标准命名约定。行业使用* .vcxproj,*。csproj,*。vbproj(等),*。targets,*。props,*。proj(有时),甚至更少的* .xml。
第二,您应该使用msbuild项目API为您完成所有繁重的猜测工作。不要重新发明轮子: https://docs.microsoft.com/en-us/dotnet/api/microsoft.build.evaluation.project?view=netframework-4.8
使用该类,您可以使用Project类来加载msbuild文件,如下所示:
var p = new Microsoft.Build.Evaluation.Project("C:\somefile.targets");
如果不是msbuild文件,则捕获异常。