.net - 如何确定 xml 文件是否是有效的 msbuild 构建文件?
问题描述
如何确定文件是否是来自目录的有效 msbuild 文件,该目录可能包含许多 xml 文件?我正在读取目录中的所有文件,使用 BeautifulSoup 解析它们,确定它们是否有项目元素,以及itemgroup、target或compile元素,但这种方法会返回许多误报。是否有可能使这个更严格?
解决方案
对于初学者来说,您应该对 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 文件,则捕获异常。
推荐阅读
- python - NLTK 使 Bigrams 和 Trigrams 同时做两个错误
- c# - 由于我的代码错误,visual c# 无法加载表单!登录DB.Designer.cs
- python - 将数组“压缩”为 {item:occurrences} 形式的字典
- c - For循环似乎变得无限
- progressive-web-apps - PWA 启动浏览器是否及时更新
- java - Java中LinkedList的实时效率
- ios - SWIFT IOS:并非所有数据都保存到 Firebase
- c# - C# StreamReader ReadLine 在单元格内的内部换行符处换行
- bash - 一行中的bash shell cmd
- ruby-on-rails - 使用 OS X Mojave 安装旧的 scrypt gem 版本时出现 i386 arch 错误