[英]Accessing up folder of publish folder at .Net Core web Api 2.1
[英].NET Core include folder in publish
添加这个:
<ItemGroup>
<Content Include="AppData\**">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
如果它不是空的,你的.csproj
文件将复制AppData
文件夹。 对于空的AppData
文件夹,您可以使用以下解决方法:
<Target Name="CreateAppDataFolder" AfterTargets="AfterPublish">
<MakeDir Directories="$(PublishDir)AppData" Condition="!Exists('$(PublishDir)AppData')" />
</Target>
如果它尚未包含在输出中,这将在发布后创建AppData
文件夹。 这意味着只有在发布时它是空的,这才会创建AppData
文件夹。
有一个简单而有用的解决方案:
<ItemGroup>
<Content Include="AppData\**" CopyToPublishDirectory="PreserveNewest"/>
</ItemGroup>
您可以在此处找到更多技巧: https : //docs.microsoft.com/en-us/dotnet/core/tools/project-json-to-csproj
您可以在其中放置一个占位符文件(或使用您现有的文件)。 然后将文件添加到项目并设置文件属性:复制到输出目录:如果更新则复制或始终复制。
其他方式:添加后构建步骤命令,创建目录。
以上解决方案都不适合我。 因此,我采用了在“React 项目模板”中采用的相同方法,并将此代码添加到我的 .csproj 文件中:
<Target Name="PublishFrontend" AfterTargets="ComputeFilesToPublish">
<ItemGroup>
<DistFiles Include="ClientApp\build\**" />
<ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
<RelativePath>%(DistFiles.Identity)</RelativePath>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
</ResolvedFileToPublish>
</ItemGroup>
</Target>
第一个解决方案,如果运行 dotnet build 或 dotnet publish 将在 bin 中添加文件夹。
<ItemGroup>
<None Update="AppData\**" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>
第二种解决方案,如果运行 dotnet publish 将在 bin 中添加文件夹。
<ItemGroup>
<Content Include="AppData\**" CopyToPublishDirectory="PreserveNewest"/>
</ItemGroup>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.