Каковы недостатки изменения набора инструментов MSBuild (ToolsVersion) в наших. net проектах?
Насколько я знаю, ToolsVersion
определяет механизм сборки для конкретная версия, а на самом деле это означает создание проектов с различными версиями MSBuild. См. эту ссылку .
Например, :
VS2019 (MSBuild 16.0): ToolsVersion=Current
, VS2017 (MSBuild 15.0): ToolsVersion=15.0
, VS2015 (MSBuild 14.0): ToolsVersion=14.0
, VS2013: ToolsVersion=12.0
.
Однако , каждый новый выпуск MSBuild будет иметь некоторые новые функции и некоторые специальные задачи, которые вы можете использовать в файле proj
. Из-за этого MSBuild поддерживает нисходящую совместимость , а более высокая версия MSBuild поддерживает компиляцию проектов, созданных с более низкой версией VS, а также новые функции из предыдущих более низких версий.
Например, , если вы создаете новый проект в VS2015, вы можете использовать ToolsVersion 14.0
, 15.0
и Current
без ошибок.
Если вы используете нижнюю версию ToolsVersion для сборки своего проекта, это приведет к появлению некоторых ошибок, таких как Could not find the assembly reference xxxxxxx
или отсутствующих методов DLL.
Поэтому , мы рекомендуем использовать ToolsVersion
(MSBuild) это выше, чем версия вашего текущего проекта, а не MSBuild, которая ниже, чем версия вашего текущего проекта. И если в вашем текущем проекте нет специальных методов или функций версии, и нет проблем с использованием более низкой версии, но это обычно не рекомендуется. И используйте последнюю версию MSBuild для создания своего проекта, он может быть оптимизирован и улучшен для повышения производительности.
Надеюсь, он может вам помочь.