📜  .net core 复制目录到输出 - C# (1)

📅  最后修改于: 2023-12-03 14:59:01.538000             🧑  作者: Mango

.NET Core 复制目录到输出 - C#

在 .NET Core 中,我们通常需要将一些静态资源文件打包在输出文件夹中一同发布。这些静态资源文件可以是配置文件、图片或者其他任何文件。

为了将这些文件复制到输出文件夹中,我们可以使用 .NET Core SDK 自带的 MSBuild 任务。

方法
方法一:使用 <ItemGroup> 元素

我们可以在项目文件中使用 <ItemGroup> 元素来指定需要复制到输出文件夹的文件。

<ItemGroup>
  <Content Include="config\*.json" CopyToOutputDirectory="Always" />
  <Content Include="wwwroot\**" CopyToOutputDirectory="Always" />
</ItemGroup>
  • 对于 CopyToOutputDirectory 属性,有以下几种可选值:
    • Always:每次编译都会将文件复制到输出文件夹中。
    • PreserveNewest:只有当源文件的修改时间晚于目标文件的修改时间时才会将文件复制到输出文件夹中。
    • Never:永远不会将文件复制到输出文件夹中。
方法二:使用 <Target> 元素

我们可以在项目文件中使用 <Target> 元素来自定义一个 MSBuild 任务,实现将指定目录中的文件复制到输出文件夹中。

<Target Name="CopyFiles" AfterTargets="Build">
  <ItemGroup>
    <FilesToCopy Include="path\to\directory\**\*" />
  </ItemGroup>
  <Copy SourceFiles="@(FilesToCopy)" DestinationFolder="$(OutputPath)" SkipUnchangedFiles="false" />
</Target>

此任务将在每次生成后自动执行。

总结

以上就是在 .NET Core 中复制目录到输出文件夹的两种方法。除此之外,还有一些第三方的 NuGet 包及工具也可以完成此功能,例如 BundlerMinifierMSBuild. Tasks. Copy. Extension 等。

我们可以根据实际需求选择最适合的方式。