2011-12-14 21 views
1

私はいくつかのサードパーティのリファレンスを持つVS2010プロジェクトを持っています。 $(OutputPath)ではなく、$(OutputPath)\Librariesにこれらの参照を自動的に出力する方法はありますか?参照用のVisual Studio 2010カスタム出力パス

今、私はこのようになりますカスタムAfterBuild目標を持って、私は、VSでの参照を追加するときに手動@(LibFiles)への参照を追加する必要があるため、

<Target Name="AfterBuild"> 
    <ItemGroup> 
    <LibFiles Include="$(SolutionDir)\lib\dotnetzip-1.9\Release\Ionic.Zip.dll" /> 
    <LibFiles Include="$(SolutionDir)\lib\ninject-2.2.0.0\Ninject.dll" /> 
    <LibFiles Include="$(SolutionDir)\lib\nlog-2.0.0.2000\NLog.dll" /> 
    <LibFiles Include="$(SolutionDir)\lib\nlog-2.0.0.2000\NLog.Extended.dll" /> 
    </ItemGroup> 

    <Copy SourceFiles="@(LibFiles)" DestinationFolder="$(OutputPath)\Libraries" /> 
</Target> 

は、しかし、これは疲れる取得

もっと簡単な方法はありますか?

答えて

2

は、このようにそれを行うにしてみてください。

<ItemGroup> 
    <LibFiles Include="$(SolutionDir)\lib\**\*.dll" /> 
</ItemGroup> 

<Target Name="AfterBuild" Inputs="@(LibFiles)"> 
    <Copy SourceFiles="@(LibFiles)" DestinationFolder="$(OutputPath)\Libraries" /> 
</Target> 

長所:

  1. をあなたはAfterBuildあなたが
  2. ライブラリがコピーされ、プロジェクトに新しい の参照を追加するたびにターゲット変更する必要はありません(更新後の) @(LibFiles)のいずれかのファイルの日時が変更された場合(更新後)

短所:

  1. あなたは私が推測する、ライブラリフォルダに多くのDLLを持っています。しかし、Exclude = "$(SolutionDir)\ lib \ * * \ Debug \ *。dll"を使用して除外することができます。
関連する問題