在发布期间在 wwwroot 中创建空目录,即使该目录为空
Posted
技术标签:
【中文标题】在发布期间在 wwwroot 中创建空目录,即使该目录为空【英文标题】:During publish create empty directory inside wwwroot even if the directory is empty 【发布时间】:2022-01-20 02:29:54 【问题描述】:我的 blazor 服务器项目中有 wwwroot/print/data/
空文件夹。但是当我发布项目时。 wwwroot
文件夹不包含 print/data/
子文件夹。但是如果print/data/
文件夹里面有一些文件,它就会被创建。我希望发布项目有print/data/
,即使文件夹是空的。
澄清:我所说的已发布项目是指在解决方案资源管理器窗口中,当您右键单击项目然后单击发布时。发布目录中的项目已创建。
软件信息:
.NET 版本:5.0 项目:Blazor 服务器端【问题讨论】:
【参考方案1】:您可以在 .csproj 文件中添加 <Target Name="CreateFolder" AfterTargets="Publish">
。它对我有用。
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<Target Name="CreateFolder" AfterTargets="Publish">
<MakeDir Directories="$(PublishDir)wwwroot\print\data" Condition="!Exists('$(PublishDir)wwwroot\print\data')" />
<WriteLinesToFile File="$(PublishDir)wwwroot\print\data\.log" Lines="Generated file for publish" Overwrite="True" Condition="!Exists('$(PublishDir)wwwroot\print\data\.log')" />
</Target>
</Project>
经过测试,看了很多博客,发现文件夹是否为空,发布过程中会忽略。
也许我们可以在data
文件夹下创建一个示例文件,我认为这是最简单的方法。
【讨论】:
是的,我也认为样本数据更容易。但这似乎是一种技巧,而不是一种解决方案。我的意思是我也可以在已发布的项目中创建文件夹。我希望这是一种更改配置的方法,以便它不会忽略空文件夹。 @KevinStephenBiswas 这是编译时的默认行为。 .csproj 在这里允许这些特殊操作,它是如何破解的? @KevinStephenBiswas docs.microsoft.com/en-us/visualstudio/msbuild/… 官方文档提到了这个用法。以上是关于在发布期间在 wwwroot 中创建空目录,即使该目录为空的主要内容,如果未能解决你的问题,请参考以下文章