我如何确定一个文件是否是来自一个目录的有效的msbuild文件,这个目录可能有很多xml文件?我正在阅读目录中的所有文件,使用BeautifulSoup解析它们,确定它们是否有一个project元素,以及 itemgroup、target 或 compile 元素中的任何一个,但是这种方法返回了很多误报。有没有可能使这个方法更严格一些?
wgmfuz8q1#
对于初学者来说,您应该认识到应该对msbuild文件使用标准命名约定。业界使用 .vcxproj、.csproj、.vbproj(等等)、.targets、.props、.proj(有时),甚至更少的 *. xml。其次,您应该使用msbuild项目API来完成所有繁重的猜测工作。https://learn.microsoft.com/dotnet/api/microsoft.build.evaluation.project您可以使用Project类别载入msbuild档案,如下所示:
var p = new Microsoft.Build.Evaluation.Project("C:\somefile.targets");
如果不是msbuild文件,则捕获异常。
1条答案
按热度按时间wgmfuz8q1#
对于初学者来说,您应该认识到应该对msbuild文件使用标准命名约定。业界使用 .vcxproj、.csproj、.vbproj(等等)、.targets、.props、.proj(有时),甚至更少的 *. xml。
其次,您应该使用msbuild项目API来完成所有繁重的猜测工作。https://learn.microsoft.com/dotnet/api/microsoft.build.evaluation.project
您可以使用Project类别载入msbuild档案,如下所示:
如果不是msbuild文件,则捕获异常。