Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 Visual Studio 2010引用的自定义输出路径_Visual Studio 2010_Msbuild_Build Process - Fatal编程技术网

Visual studio 2010 Visual Studio 2010引用的自定义输出路径

Visual studio 2010 Visual Studio 2010引用的自定义输出路径,visual-studio-2010,msbuild,build-process,Visual Studio 2010,Msbuild,Build Process,我有几个第三方参考的VS2010项目。是否有任何方法可以自动将这些引用输出到$(OutputPath)\Libraries,而不仅仅是$(OutputPath) 现在我有一个定制的AfterBuild目标,看起来像这样 <Target Name="AfterBuild"> <ItemGroup> <LibFiles Include="$(SolutionDir)\lib\dotnetzip-1.9\Release\Ionic.Zip.dll" />

我有几个第三方参考的VS2010项目。是否有任何方法可以自动将这些引用输出到
$(OutputPath)\Libraries
,而不仅仅是
$(OutputPath)

现在我有一个定制的
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)
的引用

有更简单的方法吗?

试着这样做:

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

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

优点:

  • 您不必每次添加新对象时都修改后构建目标 参考到您的项目中
  • 库只复制一次,或者如果其中任何文件的日期时间 @(LibFiles)已更改(更新后)
  • 缺点:

  • 我想在Libraries文件夹中会有更多DLL。但您可以使用Exclude=“$(SolutionDir)\lib\***\Debug\*.dll”对它们进行过滤,例如