Как программно получить расположение "al.exe". NET SDK? - PullRequest
0 голосов
/ 29 января 2020

У меня установлены разные версии Windows SDK и NET Developer Packs. Например, c: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.6.2 Tools \ в результате установки. NET Developer Pack 4.6.2. Я хочу программно получить полный путь к «al.exe» в этой папке и использовать ToolLocationHelper Class . Ниже приведен пример для LinqPad:

Microsoft.Build.Utilities.TargetDotNetFrameworkVersion.VersionLatest.Dump();
Microsoft.Build.Utilities.ToolLocationHelper.GetPathToDotNetFrameworkSdk(Microsoft.Build.Utilities.TargetDotNetFrameworkVersion.VersionLatest).Dump();
Microsoft.Build.Utilities.ToolLocationHelper.GetPathToDotNetFrameworkSdkFile("al.exe", Microsoft.Build.Utilities.TargetDotNetFrameworkVersion.VersionLatest).Dump();

Результат выполнения этого кода:

Version45
C:\Program Files\Microsoft SDKs\Windows\v6.0A\
null

Ключи реестра HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows и HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Microsoft \ Microsoft SDK \ Windows содержит CurrentVersion = 6.0A несмотря на VS 2017 и. NET Developer Pack 4.6.2 были последними установленными инструментами.

Вопрос: как программно получить полный путь к «al.exe» из последней версии. NET Developer Pack (в моем случае 4.6.2)?

...