2011-12-14 62 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”来筛选它们,例如