После некоторого исследования я создал пустую консольную консоль C ++ и этот простой скрипт MsBuild:
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Build" Outputs="" Condition="">
<ItemGroup>
<MyProjects Include="test est.vcxproj">
</MyProjects>
</ItemGroup>
<MSBuild Projects="@(MyProjects)">
<Output TaskParameter="TargetOutputs" ItemName="MyProjectsOutput" />
</MSBuild>
<Message Importance="high" Text="MyProjects: @(MyProjects)"></Message>
<Message Importance="high" Text="MyProjectsOutput: @(MyProjectsOutput)"></Message>
</Target>
</Project>
test.exe был успешно создан, но все же ItemGroup @ (MyProjectOutput) не содержал файл. Когда я меняю test.vcxproj на «Common Language Runtime Support (/ clr)», результат отображается правильно. Кажется, это ошибка в MsBuild.