NuGet 包目标 - 如何在构建时将文件复制到目标目录的子文件夹?

NuGet package targets - how to copy files to subfolder of target dir on build?

我正在尝试将两个文本文件添加到我的 nuget 包中,以便当包的用户构建项目时,一个文件被复制到构建目录的根目录,而另一个文件被复制到子文件夹像这样的根

\bin\Debug\ - 1.TXT
            - SubFolder\  - 2.TXT

此目录结构是包中程序集的要求,这些程序集将在运行时在那些特定位置查找这些文件。

基于此 而这个

我能够创建一个将 1.txt 复制到根目录的目标文件,但是当我将包添加到项目并构建它时,它只是将 2.txt 复制到根目录。我创建了一个build文件夹如下

我的目标文件如下所示

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <ItemGroup>
  <None Include="$(MSBuildThisFileDirectory)1.txt">
     <Link>1.txt</Link>
     <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  </None>
  <None Include="$(MSBuildThisFileDirectory)SubFolder.txt">
     <Link>2.txt</Link>
     <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  </None>  
 </ItemGroup>
</Project>

如何创建子文件夹并将文件复制到该文件夹​​?

最初我使用 content 文件夹将我的内容文件和子文件夹添加到 nuget 包中,但我发现虽然文件以正确的目录结构添加到解决方案本身,但文件是添加了设置为 'Do Not Copy' 的属性,因此它们不会被复制到构建目录 - 所以我改用上述方法。有没有办法结合这两种方法?

我想我使用以下方法解决了它

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <ItemGroup>
    <RequiredFiles Include="$(MSBuildThisFileDirectory)**\*" />
    <None Include="@(RequiredFiles)">
     <Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
     <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  </None>  
 </ItemGroup>
</Project>

基于此处找到的解决方案