Каковы недостатки изменения набора инструментов MSBuild (ToolsVersion) в наших. net проектах? - PullRequest
0 голосов
/ 17 апреля 2020

Я знаю, что и как MSBuild Toolset (ToolsVersion) работает, но не понимаю, что повлияет на наши проекты, если изменить / использовать более низкую или более высокую ToolVersion из файла проекта или CLI.

Нужно знать плюсы и минусы Пожалуйста ...

1 Ответ

1 голос
/ 20 апреля 2020

Каковы недостатки изменения набора инструментов 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 для создания своего проекта, он может быть оптимизирован и улучшен для повышения производительности.

Надеюсь, он может вам помочь.

...