Прежде всего, чтобы прояснить возможную путаницу, вытекающую из вашего заголовка, автоматический импорт Directory.Build.props
- это не Visual Studio 2017 , а MSBuild 15 *Функция 1007 * (которая включена в VS2019 ).
С моим придиркой, давайте разберемся с техническим:
Проблема не в вашем порядке сборки. Причина, по которой Directory.Build.props
обнаруживается только в вашем проекте ProjectDev
, заключается в том, что MSBuild ищет в каталоге .csproj
файл с именем Directory.Build.props
и импортирует его, если находит его. Если он не найден, файл ищется в родительском каталоге. И он продолжает искать Directory.Build.props
в родительском каталоге, пока не достигнет корня, или он действительно найдет этот файл и затем остановится, поэтому он автоматически импортирует только первый найденный Directory.Build.props
.
Структура вашего проектакак описано выше, выглядит следующим образом:
/LibA/
/LibA/LibA.csproj
/LibB/
/LibB/LibB.csproj
/ProjectDelivery/
/ProjectDelivery/ProjectDelivery.csproj
/ProjectDev/
/ProjectDev/ProjectDev.csproj
/ProjectDev/Directory.Build.props
Только ProjectDev
автоматически получает Directory.Build.props
;ни один из других проектов не имеет Directory.Build.props
ни в своих каталогах, ни в своих родительских каталогах.
Чтобы устранить проблему, вы можете переместить папку Directory.Build.props
на одну вверх, чтобы она автоматически импортироваласьвсеми вашими проектами, или вы можете импортировать Directory.Build.props
вручную, добавив элемент Import к вашему .csproj
:
<Project>
<Import Project="..\ProjectDev\Directory.Build.props" />
</Project>
. Вы можете прочитать более подробную информацию о Directory.Build.props
в документации .