gpt4 book ai didi

c# - .csproj 中的 CopyToPublishDirectory

转载 作者:行者123 更新时间:2023-12-01 17:52:37 25 4
gpt4 key购买 nike

在发布我的 dotnet 应用程序时,我在 .csproj 中使用 CopyToPublishDirectory 复制文件/文件夹:

<None Update="Views\**\*; wwwroot\**\*">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>

有没有办法复制文件夹并在此过程中更改其名称?例如,我想复制 node_modules 文件夹的子集,这样我就可以使用我的 npm 依赖项子集创建一个名为 node_modules_dev 的新文件夹,然后复制它通过 CopyToPublishDirectory 作为 node_modules。我想语法会像这样工作:

<None Update="node_modules_dev/**/*" Rename="node_modules">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>

谢谢--

最佳答案

这里的技巧是:

  1. 确保默认情况下尚未包含这些项目,这样就不会有之前的全局模式扩展留下的元数据。这可以通过将路径添加到 DefaultItemExcludes 属性来完成,这样 Web SDK 将忽略这些文件。
  2. 使用可用于通过 glob 模式扩展的项目的 %(RecursiveDir) 元数据,并表示任何扩展路径的值。这将仅针对 Include="…" 语法进行定义,因此为 1。

这将使用 Link 元数据覆盖新目录的默认目标路径:

<PropertyGroup>
<DefaultItemExcludes>$(DefaultItemExcludes);node_modules_dev\**</DefaultItemExcludes>
</PropertyGroup>
<ItemGroup>
<Content Include="node_modules_dev\**\*" Link="node_nodules\%(RecursiveDir)%(FileName)%(Extension)" CopyToPublishDirectory="PreserveNewest" />
</ItemGroup>

关于c# - .csproj 中的 CopyToPublishDirectory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46282720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com