バッチ処理を使用して1つ以上のcsprojプロジェクトが新しくビルドされたため、新しいnugetパッケージが必要であることを確認するmsbuildプロジェクトを実行したいと思います。これまでに作成したスクリプトは妥当なスタートのように見えますが、インクリメンタルビルドメカニズムが機能していません。MainBuildターゲットは、何があっても毎回実行されます。
これが私が持っているものです:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="MainBuild" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)'=='' ">Debug</Configuration>
    <Content>content\plugins\</Content>
  </PropertyGroup>
  <ItemGroup>
    <Nuspec Include="$(MSBuildProjectDirectory)\plugins\*\*.nuspec" />
  </ItemGroup>
<Target Name="MainBuild"
        Inputs="%(Nuspec.RootDir)%(Nuspec.Directory)bin\$(Configuration)\*.dll"
        Outputs="%(Nuspec.RootDir)%(Nuspec.Directory)%(FileName).pkg" >
  <ItemGroup>
    <Inputs Include="%(Nuspec.RootDir)%(Nuspec.Directory)bin\$(Configuration)\*.dll" />
    <Outputs Include="%(Nuspec.RootDir)%(Nuspec.Directory)%(FileName).pkg" />
  </ItemGroup>
  <Message Text="INPUTS: %(Inputs.FullPath)" />
  <Message Text="OUTPUTS: @(Outputs->'%(FullPath)')" />
  <Copy SourceFiles="@(Inputs)" DestinationFiles="@(Outputs->'%(FullPath)')" />
</Target>
</Project>
このCopyタスクは、nugetを呼び出して新しいパッケージを作成するためのデバッグプレースホルダーにすぎません。  
bin\Debugディレクトリ内のファイルが対応する.nuspecファイル(上記の2つのフォルダーにあるbin\Debug)よりも新しい場合、MainBuildターゲットを実行する必要があるという考え方です。
何か案は?
psおそらくそれぞれの属性InputsとOutputs属性がアイテムを作成します。Target作成したアイテムがターゲット内で参照できないのは不思議だと思います。上記の例では、アイテムにアクセスできるように、アイテムを再作成するためにtarget-interna動的ItemGroupを作成する必要がありました。それを回避する方法はありますか?