Для начала осознайте, что вы должны использовать стандартное соглашение об именах для файлов msbuild.В отрасли используются * .vcxproj, * .csproj, * .vbproj, (и т. Д.), * .Targets, * .props, * .proj (иногда) и даже меньше * .xml.
Во-вторых, вы должны использовать API проекта msbuild, чтобы выполнить всю тяжелую работу по угадыванию за вас.Не изобретайте колесо: 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.