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

NuGet包目标-如何在生成时将文件复制到目标目录的子文件夹?,nuget,nuget-package,Nuget,Nuget Package,我试图将两个文本文件添加到我的nuget包中,这样当包的用户构建项目时,一个文件被复制到构建目录的根目录中,而另一个文件被复制到根目录的子文件夹中,如下所示 \bin\Debug\ - 1.TXT - SubFolder\ - 2.TXT <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup>

我试图将两个文本文件添加到我的nuget包中,这样当包的用户构建项目时,一个文件被复制到构建目录的根目录中,而另一个文件被复制到根目录的子文件夹中,如下所示

\bin\Debug\ - 1.TXT
            - SubFolder\  - 2.TXT
<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\2.txt">
     <Link>2.txt</Link>
     <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  </None>  
 </ItemGroup>
</Project>
此目录结构是程序包中程序集的一项要求,程序包将在运行时在这些特定位置查找这些文件

基于此, 还有这个

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

我的目标文件如下所示

\bin\Debug\ - 1.TXT
            - SubFolder\  - 2.TXT
<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\2.txt">
     <Link>2.txt</Link>
     <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  </None>  
 </ItemGroup>
</Project>

1.txt
总是
2.txt
总是
如何创建子文件夹并将文件复制到该文件夹


最初,我使用
content
文件夹将我的内容文件及其子文件夹添加到nuget软件包中,但我发现,尽管这些文件以正确的目录结构添加到解决方案本身,添加的文件的属性设置为“不复制”,因此它们不会复制到构建目录中-因此我改为使用上述方法。有没有办法将这两种方法结合起来?

我想我用以下方法解决了这个问题

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

%(RecursiveDir)%(文件名)%(扩展名)
总是

基于这里找到的解决方案,我想我用以下方法解决了它

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

%(RecursiveDir)%(文件名)%(扩展名)
总是
基于这里找到的解决方案