首页 > 解决方案 > 如何确定 xml 文件是否是有效的 msbuild 构建文件?

问题描述

如何确定文件是否是来自目录的有效 msbuild 文件,该目录可能包含许多 xml 文件?我正在读取目录中的所有文件,使用 BeautifulSoup 解析它们,确定它们是否有项目元素,以及itemgrouptargetcompile元素,但这种方法会返回许多误报。是否有可能使这个更严格?

标签: .netmsbuild

解决方案


对于初学者来说,您应该对 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 文件,则捕获异常。


推荐阅读