Чего-то туплю, и даже всемогущий stackoverflow не помогает.
Кратко о предыстории: пытаюсь сделать дотнетовый проект (.Net Core 3.1), который импортирует нативную .dll.
Dll — соседний проект в том же солюшне. Добавил в солюшн проект, добавил project dependency, so far so good.
Из студии всё собирается на ура.
Теперь пробую собрать всё то же самое из командной строки — нужно для CI.
1. Если пойти в папку CPP проекта из Visual Studio Developer Command Prompt и выполнить
msbuild myProject.vcxproj /p:configuration=Release, то проект собирается.
2. Если пойти в папку .Net проекта хоть из VS Developer Command Prompt, хоть из голого cmd.exe, и выполнить
dotnet build -c Release, то сборка падает с диагностикой
error MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found.
Это, в принципе, логично — в упомянутой строке стоит
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
, а VCTargetsPath у меня в енвайронменте пустой.
Вопросов, собственно, два:
А. Каким волшебным образом msbuild ухитряется собрать проект в п.1, если у него неправильный VCTargetsPath?
Б. Как правильно включить VCTargetsPath в сборку, чтобы собиралось везде, а не только на моей машине и из VS Developer Command Prompt?