msbuild:Visual Studio 2010中自定义生成操作的"编译"上下文菜单项(在C++项目中)

Ami*_*nen 5 msbuild visual-studio-2010 visual-studio visual-studio-2015

我已经为我的C++ Visual Studio项目(vcxproj)添加了一个新的构建目标.
该目标在构建项目时运行自定义工具.该工具根据我指定的ContentType和ItemType处理解决方案上的特定文件.这适用于"Build"和"Clean"等项目操作.

现在我想支持一个等同于"编译"的动作,即右键单击解决方案资源管理器中的文件,然后选择使用我的自定义工具处理这个特定文件("编译"运行"CL"代表"C /" C++代码"文件类型".

我知道我可以添加一个Visual Studio宏来执行此操作.这对我来说不是一个好的解决方案,因为它很难为许多用户部署.更好的解决方案是自定义vcxproj(或由其导入的文件).
我想知道是否可以通过msbuild目标脚本或PropertyPageSchema在菜单中添加类似"编译"的操作(或者更改"C/C++代码"以外的文件类型的"编译"行为).

更新:我已经开始在MSDN论坛上进行讨论了.从微软主持人那里得到了一些帮助清理一些东西的答案,但问题仍然没有解决.


更新(2016年),VS2015

AvailableItemName似乎在VS2015上解决了这个问题.例如,我有一个自定义目标来处理Excel文件.

在目标文件上:

  <ItemGroup>
    <PropertyPageSchema Include="$(SolutionDir)\ExcelOptions.xml" />
  </ItemGroup>

  <ItemGroup>
    <AvailableItemName Include="Excel">
      <Targets>ProcessExcel</Targets>
    </AvailableItemName>
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

在选项文件上:

  <FileExtension Name=".xls"  ContentType="Excel"/>
  <ContentType   Name="Excel" DisplayName="Excel File" ItemType="Excel"/>
  <ItemType      Name="Excel" DisplayName="Excel File"/>
Run Code Online (Sandbox Code Playgroud)

现在,在选择excel文件后,可以在解决方案资源管理器上下文菜单中访问编译,并且CTRL-F7也适用(对于可在VS上编辑的文件,而不是excel文件)