Собрать проект с зависимостью от CPP из командной строки
От: Sinclair Россия https://github.com/evilguest/
Дата: 25.09.20 03:33
Оценка:
Чего-то туплю, и даже всемогущий 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?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.