发布dotnet应用时,我在.csproj中使用CopyToPublishDirectory
复制文件/文件夹:
<None Update="Views\**\*; wwwroot\**\*">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>
有没有一种方法可以复制文件夹并在此过程中更改其名称?例如,我想复制
node_modules
文件夹的一个子集,所以我可以创建一个名为node_modules_dev
的新文件夹,其中包含我的npm依赖项的子集,然后通过CopyToPublishDirectory
将它复制为node_modules
。我以为语法会像这样工作:<None Update="node_modules_dev/**/*" Rename="node_modules">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>
谢谢 -
最佳答案
这里的窍门是:
DefaultItemExcludes
属性来完成,以便Web sdk将忽略文件。 %(RecursiveDir)
元数据,该元数据可用于通过glob模式扩展的项目,并表示任何扩展路径的值。因此,仅针对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/