Сборка vcxproj с нуля |$ (VCTargetsPath) разрешается в C: \ - PullRequest
0 голосов
/ 25 ноября 2018

Чтобы стать более близким с MSBuild, я хотел создать vcxproj с нуля и использовать msbuild через командную строку.Я следую Документам о том, как построить проект с нуля.

После создания простой программы с такой структурой каталогов:

%Root%\include\main.h
%Root%\src\main.cpp
%Root%\sample.vcxproj

Я построилмой файл vcxproj по ссылке выше.Я внес необходимые изменения, чтобы отразить мою структуру каталогов.

В моей системе установлена ​​Visual Studio 2017 и установлены все необходимые инструменты MSBuild.Проблема, с которой я столкнулся, заключается в $(VCTargetsPath), по умолчанию решающей C:\.

После поиска, похоже, что для правильного разрешения KvP реестра необходимо установить - см. Здесь.Это кажется мне странным, потому что когда я проверяю файлы vcxproj, созданные в проектах, которые я создал в Visual Studio, они используют одну и ту же ссылку $(VCTargetsPath), и все работает нормально.Кроме того, в ссылке, указывающей, что в разделе реестра необходимо внести изменения, я не могу найти каталог где-нибудь в моей системе, который заканчивается на *\Microsoft.cpp\v4.0\*.

Любые идеи, как я могу сделать $(VCTargetsPath) правильнорешить ??

РЕДАКТИРОВАТЬ: Вот как я решил эту проблему: В моем файле sample.vcxproj я создал группу свойств, которая определила $(VCTargetsPath) для известного местоположения - C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets, как это.

  <PropertyGroup>
      <VCTargetsPath>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\</VCTargetsPath>
  </PropertyGroup>

Тогда из powershell я бежал

cmd /c "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\msbuild.exe" sample.vcxproj /p:configuration=debug
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...