2011-12-14 63 views
1

我有VS2010項目與幾個第三方參考。有什麼辦法可以自動輸出這些引用到$(OutputPath)\Libraries而不是隻有$(OutputPath)Visual Studio 2010自定義輸出路徑的參考

現在我有一個自定義AfterBuild目標看起來像這樣,

<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> 

然而這得到很累,因爲我必須添加在VS.時的參考引用手動添加到@(LibFiles)

有沒有更簡單的方法?

回答

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」來篩選它們,例如