5

C++ Visual Studio プロジェクト (vcxproj) に新しいビルド ターゲットを追加しました。
このターゲットは、プロジェクトのビルド時にカスタム ツールを実行します。ツールは、指定した ContentType と ItemType に従って、ソリューション上の特定のファイルを処理します。これは、「ビルド」や「クリーン」などのプロジェクト アクションでうまく機能します。

ここで、「コンパイル」に相当するアクションをサポートしたいと思います。つまり、ソリューション エクスプローラーでファイルを右クリックし、この特定のファイルをカスタム ツールで処理することを選択します (「コンパイル」が「C/ C++ コード」ファイルの種類)。

これを行うために Visual Studio マクロを追加できることはわかっています。多くのユーザーに展開するのが難しいため、これは私にとっては良い解決策ではありません。より良い解決策は、vcxproj (またはそれによってインポートされたファイル) をカスタマイズすることです。
msbuild ターゲット スクリプトまたは PropertyPageSchema を使用して、メニューに「コンパイル」のようなアクションを追加する (または「C/C++ コード」以外のファイル タイプの「コンパイル」動作を変更する) ことは可能でしょうか。

更新: MSDN フォーラムでディスカッションを開始しました。マイクロソフトのモデレーターから回答を得て、いくつかの問題を解決しましたが、問題はまだ解決されていません。


更新 (2016)、VS2015 用

AvailableItemNameVS2015でこれを解決するようです。たとえば、Excel ファイルを処理するためのカスタム ターゲットがあります。

ターゲット ファイル:

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

  <ItemGroup>
    <AvailableItemName Include="Excel">
      <Targets>ProcessExcel</Targets>
    </AvailableItemName>
  </ItemGroup>

オプション ファイル:

  <FileExtension Name=".xls"  ContentType="Excel"/>
  <ContentType   Name="Excel" DisplayName="Excel File" ItemType="Excel"/>
  <ItemType      Name="Excel" DisplayName="Excel File"/>

Excel ファイルを選択した後、ソリューション エクスプローラーのコンテキスト メニューでコンパイルにアクセスできるようになり、CTRL-F7 も機能します(Excel ファイルではなく、VS で編集できるファイルの場合)。

4

0 に答える 0