1

アイテムのメタデータを取得してアイテム定義のメタデータを上書きするにはどうすればよいですか?

私は vcxproj に次のものを持っています:

<ItemGroup>
  <PNL Include="some file">
    <OutputDirectory>y</OutputDirectory>
  </PNL>
</ItemGroup>

次に、次の .props ファイルがあります。

<PNL>
  <OutputDirectory>x</OutputDirectory>
  <CommandLineTemplate>%(OutputDirectory)</CommandLineTemplate>
</PNL>

そして、以下を含む .target ファイル:

<PNL>
  OutputDirectory="%(PNL.OutputDirectory)"
  Outputs="%(PNL.Outputs)"
  CommandLineTemplate="%(PNL.CommandLineTemplate)"
</PNL>

したがって、Items メタデータが .props ファイル内のメタデータをオーバーライドし、コマンド ラインが次のようになると予想されます: y しかし、ビジュアル スタジオは私に与えています: x

4

3 に答える 3

0

アイテム メタデータは、アイテム配列全体ではなく、特定のアイテムごとに固有のものです。item array内の特定のアイテムごとに割り当てられた個別の辞書と考えることができます。

したがって、最初に .prop ファイルでサンプルを作成し、特定の辞書を「空の」アイテム配列に割り当てようとしてから、vcxproj ファイルで独自のメタデータを使用して新しいアイテムを定義し、それを使用します。

すべての「将来の」アイテムに対して「デフォルト」のメタデータを定義することはできません。

できることは、.prop ファイルに個別のターゲットを作成することです。これにより、既に定義されている各アイテムのメタデータが追加され、必要なときにそれが呼び出されます。

于 2013-04-11T11:40:46.393 に答える
0

私は問題を解決しました。CommandLineTemplate を .props ファイルに入れ、.target ファイルで %(PNL.CommandLineTemplate) を参照する代わりに

ターゲット ファイルにコマンドを入力するだけです: CommandLineTemplate="%(PNL.OutputDirectory)"

于 2013-04-17T03:04:37.187 に答える
0

によると: http://msdn.microsoft.com/en-us/library/ms171453.aspx#BKMK_Transforming

「アイテム定義」の下:

.NET Framework 3.5 以降では、ItemDefinitionGroup 要素を使用して、任意の項目の種類に既定のメタデータを追加できます。既知のメタデータと同様に、既定のメタデータは、指定したアイテム タイプのすべてのアイテムに関連付けられます。アイテム定義でデフォルトのメタデータを明示的にオーバーライドできます。

私がしていることはどれですか?

于 2013-04-17T02:07:46.383 に答える