我有一个不包含源代码的 VS 2010 vcxproj。PreBuildEvent 调用一个批处理文件,该批处理文件使用第三方工具将源代码生成到我的 src\ 目录中。这很好用。问题是第一次生成源代码(或清理后),VisualStudio 并没有真正编译生成的源代码。在随后的构建中,它会编译。这对我的 CI 构建机器来说是一个问题,也让开发人员很烦恼。有什么方法可以让 VS 识别那些生成的文件?
这是我的 .vcxproj 的一个片段
<ItemDefinitionGroup>
<PreBuildEvent>
<Message>Generating from IDL </Message>
<Command>genNAPIEMsgs.bat</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="src\*.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\*.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
<ItemGroup>
<DDSGeneratedFiles Include="src\*.cpp" />
<DDSGeneratedFiles Include="src\*.h" />
</ItemGroup>
<Target Name="AfterClean">
<Message Text="AfterClean target: removing generated source code" />
<Delete Files="@(DDSGeneratedFiles)" />
</Target>