我想定义自己的编译目标,类似于ClCompile或ResourceCompile目标。
我该怎么做? 我尝试了以下操作,但是“编译”按钮没有出现在该文件的VisualStudio上下文菜单中。
<Target Name="MyCompile">
<Exec Command="test"/>
</Target>
<ItemGroup>
<MyCompile Include="testfile"/>
</ItemGroup>
答案 0 :(得分:0)
正确的行为。您不能仅通过定义自己的自定义ItemGroup将自定义UI扩展(右键单击菜单并建立支持)添加到Visual Studio UI中。如果要Visual Studio的帮助来编译标准代码文件(例如* .cs,*。cpp等),则必须使用CLCompile。
答案 1 :(得分:0)
但是Visual Studio上下文菜单中没有出现“编译”按钮。我想定义自己的类似于ClCompile或ResourceCompile目标的编译目标。
将为VS定义的项目中包含的那些文件(如ClCompile或ResourceCompile)启用一个编译按钮(用于C ++项目)。
要获取一个自定义目标(不确定,但我认为它比单个目标要复杂得多)用作ClCompile。这可能是一件非常复杂的事情。对于C ++项目,我认为compile选项不仅与编译目标或Item有关。
我评论了一些xxx.targets和xxx.props,甚至发现ClCompile Itemgroup中包含一些文件,编译将被禁用,因此我认为编译菜单将检查msbuild结构中的其他内容。
更新:
VS如何知道它可以显示a.cpp的“编译”菜单项?
编译选项如下:
检查后,我发现它与Microsoft.Cpp.DesignTime.targets
的{{1}}有关,可以在$(VCTargets)路径中找到。但是我不确定这一点。为此,我认为是否启用了编译菜单,vs不仅会检查ItemGroup,还会检查在xxx.targets中预定义的内容。
根据您的情况,在我们聊天之后,C ++项目中的contains targets that are only used by IDE and not the real build
菜单并不是您真正想要的,因为它仅适用于.vcxproj。愿Code Generation可以满足您的需求。