Чем MSBuildToolsPath отличается от MSBuildBinPath ?
В справке написано, что первая более новая, а вторую не надо использовать, потому что она устаревшая. Но мне интересна не эта информация, а причина, по которой нужно было вводить другую переменную.
Справка говорит "$(MSBuildToolsPath) is the version-specific replacement for $(MSBuildBinPath).".
Здесь мне не ясно, что именно за версия, от которой зависит значение этой переменной.
Понятно, что для одной версии чего-то значение переменной будет одно, а для другой версии чего-то значение будет другое.
Дальше там табличка, пары значений "ToolsVersion" и путей.
Мне непонятно как это всё работает. Я могу предположить, что если я через параметр командной строки msbuild
(by using the /ToolsVersion switch (or /tv, for short) when you build the project or solution from the command line)
установлю нужное мне значение ToolsVersion, то переменная MSBuildToolsPath примет значение, соответствующее этой версии ToolsVersion.
Но зачем всё это было нужно? Почему было сразу не использовать непосредственно переменную ToolsVersion в составе пути?
вот так примерно:
%ProgramFiles%\MSBuild\$(ToolsVersion)\bin