Чтобы добавить больше деталей:
И это очень странно - я должен был сделать tnet оболочкой, построенной на вершине msbuild.
Согласен с Martin , dotnet build
пока не поддерживает сборку проекта C ++, так как do tnet cli не знает, где найти необходимые C ++ xx.targets
и xx.props
.
Ваш проект является проектом C ++ / CLR (xx.vcxproj), целевой структурой которого является .net core
, он имеет большую разницу с реальными .net core
проектами (xx.csproj или xx.vbproj), xx.vcxproj
импортирует множество файлов C ++, специфицированных c, которые не включены в .net core sdk
.
Например: Go C:\Program Files\dotnet\sdk\xxx
вы можете найти там множество целей и файлов реквизитов msbuild, но не можете найти Microsoft. Cpp .Default.props файл. Этот файл приходит из рабочей нагрузки C ++ вместо. net core SDK.
Так что, хотя dotnet build
использует msbuild для сборки проекта, на самом деле он не использует тот же файл msbuild.exe из папки VS (C:\Program Files (x86)\Microsoft Visual Studio\xxx\xxx\MSBuild\1xxx\Bin\MSBuild.exe
). И только msbuild.exe из VS IDE или пакета инструментов сборки MSBuild можно использовать для сборки этого проекта.
Кроме того:
Если ваша конечная цель состоит в сборке проект на удаленном сервере, возможно, вы ищете пакет Build Tools for Visual Studio 2019. (бесплатно, если вы получили соответствующую лицензию, более подробную информацию см. this ). Для этого не требуется VS IDE для быть установленным (Ссылка для скачивания здесь )