gpt4 book ai didi

替换之前的 MSBuild 备份文件(带时间戳)

转载 作者:行者123 更新时间:2023-12-02 14:50:28 25 4
gpt4 key购买 nike

我当前使用 Web 部署项目通过各种 MSBuild 任务更新现有网站

使网站离线:

<Target Name="BeforeBuild" Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<CreateItem Include="..\website\App_Code\override\App_Offline.htm">
<Output TaskParameter="Include" ItemName="AppOffline" />
</CreateItem>
<Copy SourceFiles="@(AppOffline)" DestinationFiles="@(AppOffline->'\\servername\f$\web\example.com\wwwroot\%(RecursiveDir)%(Filename)%(Extension)')" />
<RemoveDir Directories="\\servername\f$\web\example.com\wwwroot\bin\" />
</Target>

更新文件:

<Target Name="AfterBuild" Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<CreateItem Include=".\Release\**\*">
<Output TaskParameter="Include" ItemName="ReleaseFiles" />
</CreateItem>
<Copy SourceFiles="@(ReleaseFiles)" ContinueOnError="true" SkipUnchangedFiles="true" DestinationFiles="@(ReleaseFiles->'\\servername\f$\web\example.com\wwwroot\%(RecursiveDir)%(Filename)%(Extension)')" />
<Delete Files="\\servername\f$\web\example.com\wwwroot\App_Offline.htm" />
</Target>

但是,我还想做的是在覆盖任何内容之前将现有站点备份到带时间戳的 zip(或 7zip)文件中,例如如果在 2011 年 10 月 3 日 10:35 完成,文件将被命名为 \\servername\f$\web\example.com\backup201110031035.7z,其中包含 wwwroot 文件夹的内容(在使站点脱机之前)并删除 bin 目录)

最佳答案

MSBuild Community Tasks分别通过 ZipTime 任务提供对压缩和获取(格式化的)当前时间的支持。

安装 MSBuild 社区任务后,imported对于您的项目,您可以通过将以下内容添加到 BeforeBuild 目标的开头来创建备份 zip 文件。

<ItemGroup>
<FilesToZip Include="\\servername\f$\web\example.com\wwwroot\**\*.*" />
</ItemGroup>
<Time Format="yyyyMMddhhmm">
<Output TaskParameter="FormattedTime" PropertyName="Timestamp" />
</Time>
<Zip
Files="@(FilesToZip)"
ZipFileName="\\servername\f$\web\example.com\backup$(Timestamp).zip"
WorkingDirectory="\\servername\f$\web\example.com\wwwroot" />

关于替换之前的 MSBuild 备份文件(带时间戳),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7633324/

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