Я с трудом пытаюсь выяснить, какое поле заполняется в XML файл, который я создаю. Я пытаюсь следовать "Использование MSBuild для создания Visual C++ Project" (http://msdn.microsoft.com/en-us/library/dd293607.aspx), но я застрял в части xml. Итак, поля:
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" />
<PropertyGroup>
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ItemGroup>
<ClCompile Include="main.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="main.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Targets" />
</Project>
Единственная часть, которую я знаю, мне нужно изменить, это часть группы элементов, которая соответствует всем моим файлам.cpp и.h. Нужны ли все поля? Можете ли вы привести пример для $ (VCTargetsPath) в каждом из проектов импорта? Это кажется простым, но только после первого раза. Благодарю.
VCTargetsPath - это свойство набора инструментов, определенного в реестре. В вашем случае для ToolsVersion="12"
место для реестра будет HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\12.0
. Обычно набор инструментов настраивается автоматически при установке соответствующего SDK.
Я честно никогда не создавал файл проекта C++ с msbuild в редакторе, всегда позволяю vs делать это для меня и включать/вызывать файл vcxproject через отдельный файл пользовательской сборки... однако TargetPath - это каталог настроенного цели для C++ MSBuild, на моей машине с vs 2013 установлен (настроен на использование инструментов v C++ 12.0): C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120.
Эти импорта определяют задачу ClInclude и все другие связанные с CN10 задачи, которые поддерживаются вашими инструментами.