首页 > 解决方案 > 展平 msbuild 项目输出中包含的文件

问题描述

我有一个使用新的 .Net SDK 项目格式的 MSBuild 项目。

我正在尝试包含来自解决方案外部的文件,这些文件具有自己的文件夹结构,并在进入构建目录时展平该结构。

IE

Solution\
  Lib\
    lib1\
      file1.dll
      file2.dll
  lib2\
      file3.dll
      file3.dll
  Project\
     project.csproj

\Lib我希望在我的 Visual Studio 项目中表示整个结构。我可以通过以下方式做到这一点:

<ItemGroup>
  <None Include="$(SolutionDir)\Lib\**\*">
    <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  </None>
</ItemGroup>

问题是,输出目录包含相同的文件夹结构。我希望所有文件被展平以简单地存在于我的\bin目录中,而不是\bin\lib1\file1.dll,\bin\lib2\file3.dll等。

有没有办法在项目文件中处理这个问题?

标签: .netmsbuildcsproj

解决方案


您应该可以将其更改为

<None Include="$(SolutionDir)\Lib\**\*" TargetPath="%(Filename)%(Extension)" CopyToOutputDirectory="PreserveNewest" />

更新后的目标路径将不再包含子目录。


推荐阅读