Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>Чем MSBuildToolsPath отличается от MSBuildBinPath ?
... ЭФ>Я могу предположить, что если я через параметр командной строки 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
Во-первых, потому, что не факт, что этот путь всегда будет именно в таком виде. Раньше, например, было в C:\Windows\Microsoft.Net\Framework, в будущем тоже может поменяться.
Это хорошая практика разделять версию и путь.
Во-вторых, потому, что ToolsPath можно переопределять, в этом случае жёстко указанный путь в ProgramFiles всё сломает.