Получение пути к ссылочным сборкам из атрибута TargetFrameworkAttribute
Я обрабатываю сборки с Mono.Cecil в отдельном инструменте. Этот инструмент должен быть независимым от фреймворка (т.е. загружаться в любой среде.NET 4[.x[.x]]] и не зависеть, например, от.NET SDK.
Скажем, у меня есть сборка, содержащая следующий атрибут TargetFrameworkAttribute в его IL:
[assembly: TargetFramework(".NETFramework,Version=v4.0",
FrameworkDisplayName = ".NET Framework 4")]
Как правильно сопоставить это с тем, что я считаю правильным путем:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0
Я надеюсь, что есть относительно чистый способ управлять этим из кода.NET.
Есть ли стандартный способ получения C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework
программно? Можно ли полагаться на очевидный шаблон подпапок внутри этого документа, т.е. есть ли какая-либо документация, кроме этой?
Я могу видеть MSBuild через Microsoft.Common.targets
а также Microsoft.NETFramework.props
вокруг этого есть "оптимизированная" логика. Даже если бы я захотел раскошелиться на это, и, например, использование Task там было бы слишком хрупким, и взятие зависимости от обнаружения инструментов MSBuild (v12/4 ...) не было бы идеальным. Есть идеи?