.csproj 中的 CopyToPublishDirectory
CopyToPublishDirectory in .csproj
我在我的 .csproj 中使用 CopyToPublishDirectory
在发布我的 dotnet 应用程序时复制 files/folders:
<None Update="Views\**\*; wwwroot\**\*">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>
有没有办法复制文件夹并在此过程中更改其名称?例如,我想复制我的 node_modules
文件夹的一个子集,这样我就可以用我的 npm 依赖子集创建一个名为 node_modules_dev
的新文件夹,然后通过 [=12= 复制它] 为 node_modules
。我想语法会像这样工作:
<None Update="node_modules_dev/**/*" Rename="node_modules">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>
谢谢--
这里的技巧是:
- 确保默认情况下尚未包含这些项目,因此没有来自以前的 glob 模式扩展的剩余元数据。这可以通过将路径添加到
DefaultItemExcludes
属性 来完成,这样 web sdk 将忽略这些文件。
- 使用可用于通过 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>
我在我的 .csproj 中使用 CopyToPublishDirectory
在发布我的 dotnet 应用程序时复制 files/folders:
<None Update="Views\**\*; wwwroot\**\*">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>
有没有办法复制文件夹并在此过程中更改其名称?例如,我想复制我的 node_modules
文件夹的一个子集,这样我就可以用我的 npm 依赖子集创建一个名为 node_modules_dev
的新文件夹,然后通过 [=12= 复制它] 为 node_modules
。我想语法会像这样工作:
<None Update="node_modules_dev/**/*" Rename="node_modules">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>
谢谢--
这里的技巧是:
- 确保默认情况下尚未包含这些项目,因此没有来自以前的 glob 模式扩展的剩余元数据。这可以通过将路径添加到
DefaultItemExcludes
属性 来完成,这样 web sdk 将忽略这些文件。 - 使用可用于通过 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>